Đang chuẩn bị liên kết để tải về tài liệu:
Hệ điều hành Linux - Bài 8: Lập trình mạng bằng socket

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

Nội dung tài liệu trình bày khái niệm về socket, định nghĩa về socket, kết nối socket, sever và client trog kết nối socket, cách socket làm việc, thuộc tính của socket, vùng giao tiếp của socket, kiểu socket, giao thức của socket, tạo socket, định địa chỉ socket, đặt tên cho socket, tạo hàng đợi cho socket, chờ và chấp nhận kết nối, yêu cầu kết nối, đóng kết nối, xử lý kết nối đồng thời của nhiều trình khách. | Bài 8: LẬP TRÌNH MẠNG BẰNG SOCKET I. Khái niệm về socket 1. Socket - Khi bạn viết ứng dụng và có yêu cầu tương tác với một ứng dụng khác, chúng ta thường dựa vào mô hình khách/chủ (client/server): + Ứng dụng chủ (trình chủ hay server): ứng dụng có khả năng phục vụ hoặc cung cấp cho bạn thông tin nào đó. + Ứng dụng khách (trình khách hay client): ứng dụng gửi yêu cầu đến trình chủ. - Trước khi yêu cầu một dịch vụ của trình chủ thực hiện điều gì đó, trình khách (client) phải có khả năng kết nối được với trình chủ. Quá trình kết nối này được thực hiện thông qua một cơ chế trừu tượng hóa gọi là socket. Kết nối giữa trình khách và trình chủ tương tự như việc cắm phích điện vào ổ cắm điện .Trình khách thường được coi như phích cắm điện, còn trình chủ được xem như ổ cắm điện, một ổ cắm có thể cắm vào đó nhiều phích điện khác nhau cũng như một máy chủ có thể kết nối và phục vụ cho rất nhiều máy khách. Nếu kết nối socket thành công thì trình khách và trình chủ có thể thực hiện các yêu cầu về trao đổi dữ liệu với nhau. 2. Kết nối socket a) Server - Trước hết ứng dụng chủ mở một socket . Đây chỉ là quá trình Hệ Điều Hành phân bổ tài nguyên để chuẩn bị kết nối. Bạn gọi là socket() để tạo “ổ cắm” socket cho trình chủ server. - Để ứng dụng khách biết đến ổ cắm socket của trình chủ, bạn phải đặt cho socket trình chủ một tên. Nếu trên máy cục bộ và dựa vào hệ thống tập tin của Linux, bạn có thể đặt tên cho socket như là một tên tập tin (với đầy đủ đường dẫn). Bạn chỉ cần đặt tên còn đường dẫn thường đặt trong thư mục /tmp hay /usr/tmp. Đối với giao tiếp mạng thông qua giao thức TCP/IP tên của socket được thay thế bằng khái niệm cổng (port). Cổng là một số nguyên 2 bytes thay thế cho tên tập tin. Nếu trình khách và trình chủ nằm trên hai máy khác nhau, giao thức TCP/IP còn yêu cầu xác định thêm địa chỉ IP để kết nối đến máy chủ ở xa. - Sau khi đã chỉ định tên hoặc số hiệu port cho socket, bạn gọi là bind() để ràng buộc hay đặt tên chính thức cho socket của trình chủ. Tiếp .