Bài viết giới thiệu căn bản về lập trình socket mà cụ thể là lập trình socket sử dụng TCP/IP bằng ngôn ngữ Python. Show 1. Socket là gì?Một socket là một end-point của một liên kết giữa hai ứng dụng. Socket cho phép giao tiếp trong 1 tiến trình, giữa những tiến trình trên cùng 1 máy hoặc giữa nhiều máy với nhau. Trong hệ thống mạng có rất nhiều ứng dụng bao gồm chương trình khách và chương trình chủ ở 2 hệ cuối khác nhau. Sau khi được kích hoạt, một tiến trình khách và chủ được tạo và mục đích của socket được sử dụng là để giúp 2 tiến trình này có thể truyền thông với nhau dễ dàng. Socket được chia chủ yếu thành 2 loại:
*Trong phạm vi bài viết này mình chỉ để cập đến lập trình socket dùng TCP/IP (Stream socket) 2. Lập trình socket với TCP/IPCác tiến trình mà muốn truyền thông với nhau thì sẽ gửi thông điệp thông qua các socket. Socket là cánh cửa của tiến trình ứng dụng và giao thức tầng transport (ở đây là TCP). Để có thể tương tác với nhau và máy chủ có thể nhận liên lạc từ máy khách thì máy chủ phải luôn sẵn sàng. Điều này có 2 nghĩa, thứ nhất, giống như trường hợp của UDP, một tiến trình của máy chủ phải được chạy trước khi máy khách khởi tạo liên lạc đến. Thứ hai, chương trình chủ phải tạo ra 1 socket để sẵn sàng chấp nhận kết nối từ tiến trình khách. Khi tiến trình chủ đã chạy, lúc này tiến trình khách sẽ tạo ra 1 socket TCP để có thể kết nối đến máy chủ. Trong khi máy khách đang tạo TCP socket, nó sẽ đặc tả địa chỉ IP, số cổng của tiến trình chủ. Khi socket của tiến trình khách vừa được tạo, TCP trên máy khách sẽ tiến hành thực hiện quá trình bắt tay 3 bước và thiết lập kết nối TCP tới máy chủ. Trong quá trình bắt tay 3 bước, khi tiến trình chủ nhận thấy tiến trình khách, nó sẽ tự tạo ra 1 socket mới chỉ dành riêng cho tiến trình khách đó. Khi được máy khách gõ cửa, chương trình kích hoạt với phương thức accept(). Cuối quá trình bắt tay 3 bước, một kết nối TCP tồn tại giữa socket của máy khách và socket của máy chủ. 3. Module socket trong PythonPython cung cấp module socket giúp chúng ta dễ dàng thực hiện kết nối client server để giao tiếp với nhau. Để có thể sử dụng được trước tiên ta phải import module socket vào chương trình
Tạo một socket
với
Một số phương thức được sử dụng trong chương trình:
4. Chương trình demoServer:
Client:
Lời kếtMình học môn mạng máy tính và mong moi người góp ý với mình ở phần comment nha. Cảm ơn mọi người đã xem. |