TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHỊNG
Bài tập lớn
Mơn: JAVA
Đề tài:
LẬP TRÌNH CHÁT THEO MƠ HÌNH
CLIENT/SERVER
GV hướng dẫn : Phùng Anh Tuấn
Nhóm thực hiện:
Nguyễn Thị Hà
Nguyễn Thị Nhàn
Phùng Thị Thơm
Nguyễn Thị Hồng Thắm
1
Nội dung chính
1. Giới thiệu về Socket
2. Mơ hình Client/Server
3. Nguyên tắc hoạt động
4. Chương trình
2
1. Giới thiệu về Socket
TCP/IP cho phép các máy tính trong mạng
TCP/IP có thể tạo ra các kết nối để trao đổi thông
tin với nhau.Với 1 địa chỉ IP + 1 cổng TCP sẽ tạo
thành 1 cầu nối và Socket chính là 1 giao diện lập
trình trên các cầu nối đó. (1 IP Address + 1 Port
TCP = 1 Socket )
Khi 2 máy tính muốn trao đổi thơng tin với nhau
thì 2 máy phải có cùng 1 Socket .1 máy được coi
là Server, nó mở ra 1 Socket và lắng nghe yêu cầu.
Máy kia được coi là Client, nó gọi cho Server
Socket để bắt thiết lập 1 kết nối. Để thiết lập được
kết nối cần có địa chỉ của máy đích (Destination
IP Address )và 1 cổng TCP(TCP port)
3
Giới thiệu về Socket
Socket có 2 phương thức truyền tin chính là :
Truyền có kết nối(Connection-Oriented)và truyền
khơng có kết nối(Connectionless)
Truyền có kết nối cung cấp phương thức truyền
tin như điện thoại,phải thiết lập kết nối trước khi
truyền và hủy bỏ sau khi sử dụng xong.Mọi dữ liệu
được nhận đúng thứ tự mà nó được gửi.
Truyền khơng kết nối cung cấp phương thức
truyền giống việc phân phát thư không đảm bảo vì
nhiều gói dữ liệu được nhận khác với thứ tự mà
chúng được gửi đi.
4
2.Mơ hình Client/Server
Gửi u cầu
Trả lại kết quả
5
Các Socket cung cấp 1 giao diện để đọc ghi dữ liệu
thông qua 1 luồng.Khi kết nối đã được thiết lập 2 máy
tính có thể trao đổi dữ liệu thông qua các đối tượng:
BufferedReader in=new BufferedReader(new
InputStreamReader(client.getInputStream()));
PrintWriter
out=PrintWriter(client.getOutputStream(),true);
Khi thực hiện xong cần hủy bỏ các liên kết để trả lại
tài nguyên cho hệ thống,chúng ta sử dụng phương
thức:
In.close();
Out.close();
Client.close();
6
Hoạt động của 1 ứng dụng mạng Client/Server
Client
Tạo một Socket
Tạo luồng và điều khiển
cho sự trao đổi dữ liệu
Đóng luồng và kết nối
Bắt đầu
chương
trình
Server
Tạo một serverSocket
Yêu cầu
kết nối
Chấp nhận kết nối
Trao đổi dữ liệu
Tạo luồng và điều khiển
cho sự trao đổi dữ liệu
Huỷ bỏ
kết nối
kết thúc
chương
trình
Đóng luồng và kết nối
Tiếp tục?
7
Giao diện chát Client/Server
8