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)
Trang 1TRƯỜ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
Trang 21 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
Nội dung chính
Trang 31 Giới thiệu về Socket
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 )
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)
Trang 4Socket 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
Giới thiệu về Socket
Trang 52.Mô hình Client/Server
Gửi yêu cầu Trả lại kết quả
Trang 6Cá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);
tài nguyên cho hệ thống,chúng ta sử dụng phương
thức:
In.close();
Out.close();
Client.close();
Trang 7Hoạt động của 1 ứng dụng mạng Client/Server
Bắt đầu chương trình
Tạo một serverSocket
Tạo một Socket Yêu cầu
kết nối Chấp nhận kết nối
Tạo luồng và điều khiển cho sự trao đổi dữ liệu
Tạo luồng và điều khiển
cho sự trao đổi dữ liệu Trao đổi dữ liệu
Đóng luồng và kết nối
Đóng luồng và kết nối Huỷ bỏ
kết nối
kết thúc chương trình
Tiếp tục?
Trang 8Giao diện chát Client/Server