Hướng dẫn network programming in python - lập trình mạng trong python
Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article) Dai Phong (you can also view the original English article) Show Giới thiệu về Lập trình Mạng trong PythonBài hướng dẫn này sẽ giới thiệu về socket trong Python và cách sử dụng mô đun socket để xây dựng các máy chủ và máy khách HTTP trong Python. Nó cũng sẽ khái quát Tornado, một thư viện kết nối mạng trong Python, lý tưởng cho long polling, WebSocket và các ứng dụng khác yêu cầu kết nối lâu dài với mỗi người dùng. Socket là gì?Một socket là một liên kết giữa hai ứng dụng có thể giao tiếp với nhau (hoặc cục bộ trên một máy đơn lẻ hoặc từ xa giữa hai máy ở các vị trí riêng biệt). Về cơ bản, socket hoạt động như một liên kết giao tiếp giữa hai thực thể, tức là máy chủ và máy khách. Một máy chủ sẽ trả về thông tin được yêu cầu bởi một máy khách. Ví dụ, khi bạn truy cập trang này, trình duyệt tạo một socket và kết nối với máy chủ. Mô-đun socketĐể tạo một socket, bạn sử dụng hàm import socket4 và cú pháp đơn giản như sau: import socket s= socket.socket (socket_family, socket_type, protocol=0) Đây là mô tả của các đối số:
Sau khi lấy đối tượng socket, bạn có thể tạo một máy chủ hoặc máy khách theo ý mình bằng cách sử dụng các phương thức có sẵn trong mô đun socket. Tạo một máy khách đơn giảnTrước khi bắt đầu, chúng ta hãy tìm hiểu các phương thức socket của client có sẵn trong Python.
Để tạo một socket mới, trước tiên bạn import phương thức socket của lớp socket. import socket Tiếp theo, chúng ta sẽ tạo một socket stream (TCP) như sau: stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) Tham số import socket7 cho biết bạn đang yêu cầu một socket Internet Protocol (IP), cụ thể là IPv4. Tham số thứ hai là transport protocol type import socket8 cho các socket TCP. Ngoài ra, bạn cũng có thể tạo một socket IPv6 bằng cách chỉ định tham số import socket9 của socket. Chỉ định máy chủ. server = "localhost" Chỉ định cổng mà chúng ta muốn liên lạc. port =80 Kết nối socket tới cổng nơi máy chủ đang lắng nghe. server_address = ((host, port)) stream_socket.connect(server_address) Điều quan trọng cần lưu ý là máy chủ và cổng phải là một tuple. Gửi yêu cầu dữ liệu đến máy chủ: message = 'message' stream_socket.sendall(message) Nhận phản hồi từ máy chủ: data = sock.recv(10) print data Để đóng một kết nối socket, bạn sử dụng phương thức close: stream_socket.close() Dưới đây là code đầy đủ cho Client/Server. import socket import sys # Create a TCP/IP socket stream_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # Define host host = 'localhost' # define the communication port port = 8080 # Connect the socket to the port where the server is listening server_address = ((host, port)) print "connecting" stream_socket.connect(server_address) # Send data message = 'message' stream_socket.sendall(message) # response data = stream_socket.recv(10) print data print 'socket closed' stream_socket.close() Xây dựng một máy chủ đơn giảnBây giờ chúng ta hãy tìm hiểu một máy chủ Python đơn giản. Sau đây là các phương thức máy chủ của socket có sẵn trong Python.
Chúng ta sẽ làm theo các bước sau:
Đây là chương trình máy chủ. import socket0 Máy chủ hiện đã sẵn sàng cho các kết nối đến. Bây giờ hãy chạy chương trình máy khách và máy chủ trong các cửa sổ terminal riêng biệt, để chúng có thể giao tiếp với nhau. Đầu ra Máy chủimport socket1 Đầu ra Máy kháchimport socket2 Framework TornadoFramework Tornado là một trong các thư viện có sẵn cho lập trình mạng bằng Python. Trong phần này, chúng ta sẽ thảo luận về thư viện này và cách sử dụng nó để xây dựng WebSocket. Tornado là một web framework bằng Python và thư viện kết nối mạng không đồng bộ. Tornado sử dụng I/O mạng không chặn, và do đó có khả năng mở rộng tới hàng chục nghìn kết nối mở. Đặc điểm này làm cho nó trở nên lý tưởng cho kết nối long-polling, WebSocket và các ứng dụng khác yêu cầu kết nối lâu dài với mỗi người dùng. Hãy tạo một WebSocket Tornado đơn giản: import socket3 Trong đoạn code trên:
Nếu chúng ta chạy ứng dụng, chúng ta sẽ nhận được kết quả như trong hình minh hoạ bên dưới. Phần kết luậnBây giờ bạn đã nắm được những kiến thức cơ bản về lập trình socket trong Python và cách bạn có thể xây dựng một máy chủ và máy khách đơn giản. Hãy thử bằng cách xây dựng ứng dụng trò chuyện của riêng bạn. Để tìm hiểu thêm, hãy truy cập tài liệu hướng dẫn Python. Ngoài ra, đừng ngần ngại xem qua những gì chúng tôi đang dành để bán và dành cho học tập trên Envato Market, và đừng ngần ngại hỏi bất kỳ câu hỏi nào và cung cấp phản hồi có giá trị của bạn bằng cách sử dụng phần comment ở bên dưới. |