Mạng trăn

Bài hướng dẫn này sẽ giới thiệu về socket trong Python và cách sử dụng socket mô-đun để xây dựng máy chủ và máy khách trong HTTP 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 bỏ phiếu dài, 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

Ổ cắm là gì?

Một ổ cắm là một liên kết giữa hai ứng dụng có thể giao tiếp với nhau (hoặc bộ 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, ổ cắm 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 sẽ tạo một ổ cắm và kết nối với máy chủ

Ổ cắm mô-đun

Để tạo socket, bạn sử dụng hàm

2
00 và cú pháp đơn giản như sau

1
import socket
2
s= socket.socket (socket_family, socket_type, protocol=0)

Đây là mô tả của các đối số

  • ổ cắm_gia đình. Đại diện cho họ địa chỉ (và giao thức). Nó có thể là AF_UNIX hoặc AF_INET
  • socket_type. Đại diện cho các loại ổ cắm và có thể là SOCK_STREAM hoặc SOCK_DGRAM
  • giao thức. Đây là một tùy chọn đối số, và nó thường được mặc định là 0

Sau khi lấy socket đối tượng, bạn có thể tạo 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ản

Trướ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

  • 2
    01
  • 2
    02. Khởi tạo một kết nối máy chủ TCP

Để tạo một ổ cắm mới, trước tiên bạn nhập phương thức ổ cắm của lớp ổ cắm

1
import socket

Tiếp theo, chúng ta sẽ tạo một luồng socket (TCP) như sau

1
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )

Tham số

2
03 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à loại giao thức truyền tải
2
04 cho các socket TCP. Ngoài ra, bạn cũng có thể tạo một IPv6 socket bằng cách chỉ định tham số
2
05 của socket

Chỉ định máy chủ

1
server = "localhost"

Chỉ định cổng mà chúng ta muốn liên lạc

1
import socket
1

Kết nối ổ cắm tới cổng nơi máy chủ đang lắng nghe

1
import socket
3_______0_______
import socket
5
import socket
6

Đ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ủ

1
import socket
8
2
2
0

Nhận phản hồi từ máy chủ

1
2
2_______0_______
2
4

To close a connect socket, you use close method

1
2
6

Dưới đây là code đầy đủ cho Client/Server

1
import socket
2
s= socket.socket (socket_family, socket_type, protocol=0)
0
import socket
6
s= socket.socket (socket_family, socket_type, protocol=0)
2
s= socket.socket (socket_family, socket_type, protocol=0)
3
s= socket.socket (socket_family, socket_type, protocol=0)
4
s= socket.socket (socket_family, socket_type, protocol=0)
5
s= socket.socket (socket_family, socket_type, protocol=0)
6
s= socket.socket (socket_family, socket_type, protocol=0)
7
s= socket.socket (socket_family, socket_type, protocol=0)
8
s= socket.socket (socket_family, socket_type, protocol=0)
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
import socket
3
import socket
1
import socket
2
import socket
3
import socket
4
import socket
5
import socket
5
import socket
7
import socket
8
import socket
9
1
0
1
1
import socket
8
1
3
2
0
1
5
1
6
1
7
1
8
1
9
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
0
2
4
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
2
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
3
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
4
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
5
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
6
2
6

Xây dựng một máy chủ đơn giản

Bâ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 ổ cắm có sẵn trong Python

  • 2
    01
  • 2
    07. Ràng buộc địa chỉ (tên máy chủ, số cổng) vào ổ cắm
  • 2
    08. Thiết lập và khởi động trình nghe TCP
  • 2
    09. Chấp nhận kết nối máy khách TCP

Chúng ta sẽ làm theo các bước sau

  • Tạo một ổ cắm
  • Force socket with a port
  • Bắt đầu chấp nhận các kết nối trên ổ cắm

Đây là chương trình máy chủ

1
import socket
2
s= socket.socket (socket_family, socket_type, protocol=0)
0
import socket
6
s= socket.socket (socket_family, socket_type, protocol=0)
2
s= socket.socket (socket_family, socket_type, protocol=0)
3
s= socket.socket (socket_family, socket_type, protocol=0)
4
1
6
s= socket.socket (socket_family, socket_type, protocol=0)
6
s= socket.socket (socket_family, socket_type, protocol=0)
7
s= socket.socket (socket_family, socket_type, protocol=0)
8
s= socket.socket (socket_family, socket_type, protocol=0)
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
server = "localhost"
9
1
9
import socket
01
import socket
1
import socket
03
import socket
2
import socket
05
import socket
4
import socket
5
import socket
08
import socket
7
import socket
10
import socket
8
import socket
12
import socket
9
1
1
import socket
15
1
3
1
5
import socket
18
1
6
1
8
import socket
21
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
0
import socket
23
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
2
import socket
25
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
3
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
4
import socket
28
stream_socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
6
import socket
30
import socket
31
import socket
32
import socket
33
import socket
34________2__

Máy chủ đã có sẵn 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ủ

1
import socket
40_______0_______
import socket
42
import socket
6
import socket
44
s= socket.socket (socket_family, socket_type, protocol=0)
2
import socket
46

Đầu máy khách

1
2_______48
2
import socket
50
import socket
6_______2_______52
s= socket.socket (socket_family, socket_type, protocol=0)
2
import socket
54

Lốc xoáy khung

Framework Tornado là một trong các thư viện có sẵn để 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 khung web bằng Python và thư viện kết nối mạng không đồng bộ. Tornado sử dụng mạng I/O không ngăn chặn, và do đó có khả năng mở rộng tới hàng kết nối mở dự đoán. Đặ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 đơn giản WebSocket Tornado

1
import socket
56
2
import socket
58
import socket
6
s= socket.socket (socket_family, socket_type, protocol=0)
2
s= socket.socket (socket_family, socket_type, protocol=0)
4
import socket
62
s= socket.socket (socket_family, socket_type, protocol=0)
6
s= socket.socket (socket_family, socket_type, protocol=0)
7
import socket
65
s= socket.socket (socket_family, socket_type, protocol=0)
9
import socket
67
1
1
import socket
69
1
2
import socket
71
1
4
import socket
73
1
6
import socket
75
1
7
import socket
77
1
9
import socket
79
import socket
1
import socket
81
import socket
2
import socket
83
import socket
4
import socket
85
import socket
5
import socket
7
import socket
8
import socket
89
import socket
9
import socket
91
1
1
import socket
93
1
3
import socket
95
1
5
import socket
97
1
6
import socket
99

Trong đoạn mã trên

  • Chúng ta định nghĩa lớp
    2
    10, đóng vai trò là trình xử lý cho một yêu cầu và trả lại phản hồi bằng cách sử dụng phương thức
    2
    11
  • Phương thức
    2
    12 là mục nhập cho chương trình
  • 2
    13 tạo cơ sở cho ứng dụng web và nhận một bộ xử lý, ví dụ, ApplicationHandler
  • Ứng dụng lắng nghe trên cổng 5000 và một ứng dụng khách có thể giao tiếp với ứng dụng này bằng cách sử dụng cùng một cổng
  • 2
    14 tạo ra một luồng không giới hạn cho một ứng dụng

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 họa bên dưới

Mạng trăn
Mạng trăn
Mạng trăn

Phần kết luận

Bâ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ò chơi 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ạ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ạ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