Mạng máy tính Bài thực hành 02 Lập trình socket với Java: Ứng dụng chat



tải về 18.85 Kb.
Chuyển đổi dữ liệu05.09.2016
Kích18.85 Kb.
#31701

Khoa Khoa Học và Kỹ Thuật Máy Tính – Đại học Bách Khoa TP. HCM

Mạng máy tính

Bài thực hành 02

Lập trình socket với Java: Ứng dụng chat
Họ tên SV:

Nhóm: MSSV:



I. Mục tiêu

  1. Lập trình Socket với Java (tiếp theo)

  2. Xây dựng ứng dụng chát đơn giản với mô hình Khách/Chủ

  3. Sử dụng kĩ thuật đa luồng cho ứng dụng

II. Nội dung

1. Lập trình Socket với Java (tiếp theo)

Xem xét đoạn mã sau:



try {

// Get hostname by textual representation of IP address

InetAddress addr = InetAddress.getByName("127.0.0.1");

// Get hostname by a byte array containing the IP address

byte[] ipAddr = new byte[]{127, 0, 0, 1};

addr = InetAddress.getByAddress(ipAddr);

// Get the host name

String hostname = addr.getHostName();

// Get canonical host name

String hostnameCanonical = addr.getCanonicalHostName();

}

catch (UnknownHostException e) {



}

Bài tập 1:

a. Tạo một chương trình kết nối tới máy chủ web và tải trang chủ của website này về:

www.google.com

2. Xây dựng ứng dụng chat đơn giản với mô hình Khách/Chủ




Ứng dụng Chủ

Ứng dụng khách

Tạo socket




Lắng nghe và chờ kết nối tới

Xác định địa chỉ IP và Cổng của máy chủ




Tạo socket TCP




Thiết lập kết nối tới máy chủ

Chấp nhận kết nối




Gửi/nhận dữ liệu

Gửi/nhận dữ liệu




Đóng kết nối

Đóng kết nối




Bài tập 2: Thiết kế giao diện cho chương trình chát Khách/Chủ

3. Đa luồng trong Java

Tạo một ứng dụng dạng luồng (thread)

1. class PrimeRun implements Runnable {

2. long minPrime;

3. PrimeRun ( long minPrime ) {

4. this.minPrime = minPrime;

5. }

6. public void run() {



7. // compute primes larger than minPrime

8. . . .


9. }

10. }


11. PrimeRun p = new PrimeRun(143);

12. new Thread(p).start();



Dừng một luồng

Sử dụng Thread.interrupt(), sau khi thay đổi điều kiện vòng lặp

Hàm này không làm việc với ServerSocket.accept()!

public void stop() {

running = false;

this.interrupt();

}

public void run() {



running = true;

while (running){

Socket s = socket.accept();

...


}

}





public void stop() {

running = false;

this.interrupt();

}

public void run() {



running = true;

while (running){

Socket s = socket.accept();

...


}

}


Sử dụng đa luồng trên máy chủ



Sử dụng đa luồng trên máy khách



Bài tập 3:

Sử dụng Đa Luồng trong ứng dụng chát để hỗ trợ chat cùng lúc với nhiều người dùng.






tải về 18.85 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương