1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình mạng 8 1 chuyên đề java tcp

80 702 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 1,21 MB

Nội dung

socket được định nghĩa trong hệ điều hành bằng một cấu trúc, được xem như điểm nối để hai procceses giao tiếp với nhau.Cấu trúc socket gồm 5 fields:Family : xác định protocol groupType : xác loại socket, stream, datagram hay raw socket.Protocol : kieu gthuc. thường gán giá trị bằng 0Local Socket Address và Remote Socket Address : là địa chỉ socket của process cục bộ và từ xa.

   GV: Nguyễn Thị Thanh Vân - CNTT 1 Java Simplified / Session 22 / 2 of 45  Giao tiếp Socket ◦ Đặc điểm, cấu trúc Socket ◦ TCP Socket ◦ UDP Socket  Thiết kế giải thuật server/client  Các lớp trong gói java.net  Ứng dụng client/server qua TCP socket  Ứng dụng client/server qua UDP socket Objectives Objectives 2 Java Simplified / Session 22 / 3 of 45  Trong quá trình truyền tin có thể xảy ra nhiều sự cố: ◦ một hay nhiều gói bị mất hay bị hỏng ◦ cần phải truyền lại hay không hoặc ◦ các gói tin đến không theo đúng trình tự.  Cần xử lý; ◦ việc phân chia dữ liệu thành các gói, ◦ tạo các header, phân tích header của các gói đến, ◦ quản lý danh sách các gói đã nhận được/ chưa nhận được…  => nhiều công việc cần phải thực hiện, và đòi hỏi rất nhiều phần mềm phức tạp để xử lý. => Socket Giới thiệu Giới thiệu 3 Java Simplified / Session 22 / 4 of 45  Socket API – Socket Application Programming Interface: ◦ là một cuộc cách mạng của Berkeley UNIX. ◦ được giới thiệu ở BSD4.1 UNIX, 1981  Xuất phát từ ý tưởng quan trọng nhất của UNIX: ◦ tất cả các thao tác vào/ra giống như vào ra tệp tin  Socket xem một liên kết mạng như là một luồng mà có thể đọc dữ liệu ra hay ghi dữ liệu vào từ luồng này. ◦ Nó che dấu người lập trình khỏi các chi tiết mức thấp của mạng như môi kiểu đường truyền, các kích thước gói, yêu cầu truyền lại gói, các địa chỉ mạng Giới thiệu Giới thiệu 4 Java Simplified / Session 22 / 5 of 45  Socket: ◦ “cơ chế ổ cắm” ◦ Các máy có khả năng kết nối được với nhau. ◦ Dùng cơ chế client/server  Cung cấp hai dịch vụ chính chuyển dữ liệu thông qua socket API: ◦ unreliable datagram (UDP) ◦ reliable, byte stream-oriented (TCP) KHÁI NIỆM VỀ SOCKET KHÁI NIỆM VỀ SOCKET 5 Java Simplified / Session 22 / 6 of 45 Socket trong TCP/IP Model Socket trong TCP/IP Model 6 Java Simplified / Session 22 / 7 of 45 Socket trong TCP/IP Model Socket trong TCP/IP Model 7 Java Simplified / Session 22 / 8 of 45  socket được định nghĩa trong hệ điều hành bằng một cấu trúc, được xem như điểm nối để hai procceses giao tiếp với nhau.  Cấu trúc socket gồm 5 fields: ◦ Family : xác định protocol group ◦ Type : xác loại socket, stream, datagram hay raw socket. ◦ Protocol : kieu gthuc. thường gán giá trị bằng 0 ◦ Local Socket Address và ◦ Remote Socket Address : là địa chỉ socket của process cục bộ và từ xa. Socket Socket 8 Java Simplified / Session 22 / 9 of 45 Cấu trúc socket Cấu trúc socket 9 Java Simplified / Session 22 / 10 of 45  Địa chỉ của một socket trên mạng TCP/IP gồm có hai phần: ◦ Địa chỉ IP: một số nguyên 32 bits xác định duy nhất một card mạng trên máy tính (host) ◦ Cổng dịch vụ: một số nguyên 16 bits xác định điểm kết nối với một ứng dụng trên một host. Các ứng dụng thương mại hay các dịch vụ thông dụng sử dụng các cổng dịch vụ chuẩn đã được đăng ký Địa chỉ của một socket Địa chỉ của một socket 10 [...]... trong các socket giao tiếp 3 dịch vụ khác nhau CLIENT SERVER IP: 19 2 .1 68. 0 .15 IP: 19 2 .1 68. 0 .1 HTTP-SERVER Port 80 Web browser Kết nối với socket (19 2 .1 68. 0 .1, 80 ) FTP-SERVER Port 21 Kết nối với socket (19 2 .1 68. 0 .1, 21) SQL-SERVER FTP-client data Port 14 33 Kết nối với socket (19 2 .1 68. 0 .1, 14 33) application Java Simplified / Session 22 / 11 of 45 Cấu trúc địa chỉ socket struct sockaddr_in { u_char sin_len;... trước thông điệp gửi trước nó 18 Java Simplified / Session 22 / 18 of 45 UDP socket – hoạt động 19 Java Simplified / Session 22 / 19 of 45 Số hiệu cổng của socket  Một trong 2 quá trình phải công bố số hiệu cổng của socket mà mình sử dụng  Mỗi cổng giao tiếp thể hiện 1 địa chỉ xác định trong hệ thống  Có thể nhận dữ liệu gửi đến cổng giao tiếp này từ các quá trình khác 20 Java Simplified / Session 22... class trong Java  Example 21 Java Simplified / Session 22 / 21 of 45 Thiết kế giải thuật cho client/Server  Giải thuật cho chương trình client/Server dùng TCP  Giải thuật cho chương trình client/Server dùng UDP  Chương trình server có hai loại: ◦ Lặp (iterative) ◦ Đồng thời (concurrent)  Hai dạng giao thức chương trình server: ◦ Connection-oriented (TCP) ◦ Connectionless (UDP) 22 Java Simplified... 26 Java Simplified / Session 22 / 26 of 45 Thiết kế giải thuật server – multi-protocol Server (TCP/ UDP)  Dùng một chương trình, mở một master socket cho cả TCP và UDP  Dùng hàm hệ thống (select) để chọn lựa TCP socket hay UDP socket sẵn sàng  Tùy vào protocol (TCP, UDP) để xử lý gửi nhận thông điệp theo đúng giao thức của lớp ứng dụng  Ref RFC 10 60 27 Java Simplified / Session 22 / 27 of 45 Lập trình. .. recvfrom(): nhận dữ liệu đến từ 1 socket từ xa 13 Java Simplified / Session 22 / 13 of 45 Các loại Socket  Stream Socket: dùng cho connection-oriented protocol như TCP  Datagram Socket: dùng cho connectionless protocol như UDP  Raw Socket: dùng cho một số protocol của một số ứng dụng đặc biệt, dùng các dịch vụ trực tiếp của lớp IP 14 Java Simplified / Session 22 / 14 of 45 TCP socket – đặc điểm  Có... Khởi tạo TCP socket ở local ◦ Xác định IP address, port number của server process và kết nối đến  Sau khi client khởi tạo socket, nó sẽ thiết lập kết nối đến server  Khi server nhận yêu cầu kết nối, nó sẽ chấp nhận yêu cầu và khởi tạo socket mới để giao tiếp với client ◦ Cho phép server chấp nhận nhiều client tại một thời điểm 16 Java Simplified / Session 22 / 16 of 45 TCP socket - hoạt động 17 Java. .. giao thức của lớp ứng dụng  Ref RFC 10 60 27 Java Simplified / Session 22 / 27 of 45 Lập trình mạng trên Java  Gói java. net cung cấp các lớp 1 2 3 4 5 6 7 InetAddress URL URLConnection ServerSocket Dùng cho TCP Socket Socket DatagramSocket Dùng cho UDP Socket DatagramPacket 28 Java Simplified / Session 22 / 28 of 45 InetAddress class  Phục vụ việc quản lý địa chỉ theo IP và tên  Cung cấp các phương... điểm  Có thể sử dụng để liên lạc theo mô hình client/server  Có 1 đường kết nối ảo giữa 2 phía Server/client  Một trong 2 phía phải đợi tiến trình kia yêu cầu kết nối ◦ Server lắng nghe và chấp nhận yêu cầu kết nối ◦ Mỗi thông điệp gửi đều có xác nhận trở về ◦ Các gói tin chuyển đi tuần tự 15 Java Simplified / Session 22 / 15 of 45 TCP socket – hoạt động  Client phải kết nối đến server ◦ server... sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero [8] ; }; 12 Java Simplified / Session 22 / 12 of 45 (in System Calls Interface Các hàm socket (in System Calls Interface )) 1 2 3 4 5 6 7 8 9 Hàm socket() để tạo mới một socket Hàm bind() Đăng ký socket đã khởi tạo với địa chỉ socket local Trả về 0 nếu thành công, -1: thất bại Hàm connect() để client kết nối đến server Hàm listen() đặt...  31 Java Simplified / Session 22 / 31 of 45 Ex: In địa chỉ IP và name củalocalhost import java. net.*; public class HostInfo { public static void main(String args[]) { try { InetAddress myHost = InetAddress.getLocalHost(); System.out.println(myHost.getHostAddress()); System.out.println(myHost.getHostName()); } catch (UnknownHostException ex) { System.err.println("Cannot find local host");} } } 32 Java . 80 Port 21 Port 14 33 CLIENT IP: 19 2 .16 8.0 .15 Web browser FTP-client data application Kết nối với socket (19 2 .16 8.0 .1, 80) Kết nối với socket (19 2 .16 8.0 .1, 21) Kết nối với socket (19 2 .16 8.0 .1, 14 33) Java. thời điểm. TCP socket – hoạt động TCP socket – hoạt động 16 Java Simplified / Session 22 / 17 of 45 TCP socket - hoạt động TCP socket - hoạt động 17 Java Simplified / Session 22 / 18 of 45  Cung. chỉ của một socket 10 Java Simplified / Session 22 / 11 of 45 Ví dụ mô tả đặc trưng địa chỉ IP và port trong các socket giao tiếp 3 dịch vụ khác nhau SERVER IP: 19 2 .16 8.0 .1 HTTP-SERVER FTP-SERVER SQL-SERVER Port

Ngày đăng: 09/07/2014, 15:04

TỪ KHÓA LIÊN QUAN

w