Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Python menggunakan UDP untuk melaksanakan komunikasi klien dan pelayan

Bagaimana Python menggunakan UDP untuk melaksanakan komunikasi klien dan pelayan

WBOY
WBOYke hadapan
2023-05-06 22:58:242031semak imbas

Klien UDP

Kod sampel klien menggunakan protokol UDP untuk melaksanakan perbualan berterusan. Ambil perhatian bahawa UDP ialah protokol tanpa sambungan, jadi penjagaan khas perlu diambil apabila melaksanakan perbualan berterusan.

Berikut ialah contoh kod:

import socket
# 客户端配置
HOST = 'localhost'
PORT = 12345
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到服务器
    client_socket.sendto(message.encode("utf-8"), (HOST, PORT))  # 注意,在不同操作系统上编码可能不同
    # 接收服务器传回的消息
    data, server_address = client_socket.recvfrom(1024)
    print(f"收到来自{server_address}的消息:{data.decode('utf-8')}")
# 关闭套接字
client_socket.close()

Dalam contoh ini, kami mencipta soket UDP dan menggunakan fungsi sendto() dan recvfrom() untuk menghantar dan menerima data. Program ini terus menghantar mesej melalui input pengguna dan kemudian menunggu pelayan untuk bertindak balas dan memaparkan hasilnya. Ambil perhatian bahawa kerana UDP ialah protokol tanpa sambungan, kebolehpercayaan dan keteraturan mesej tidak dapat dijamin. Semasa pembangunan sebenar, anda mungkin perlu mempertimbangkan faktor ini dan menulis kod yang lebih mantap.

Pelayan UDP

Berikut ialah kod contoh pelayan menggunakan protokol UDP untuk melaksanakan perbualan berterusan:

import socket
# 服务器配置
HOST = 'localhost'
PORT = 12345
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定到地址和端口
server_socket.bind((HOST, PORT))
while True:
    # 接收客户端传来的消息
    data, client_address = server_socket.recvfrom(1024)
    print(f"来自{client_address}的消息:{data.decode('utf-8')}")
    # 获取用户输入
    message = input("请输入要发送的消息:")
    # 发送消息到客户端
    server_socket.sendto(message.encode("utf-8"), client_address)
# 关闭套接字
server_socket.close()

Dalam contoh ini, kami mencipta soket UDP dan mengikatnya kepada alamat dan port yang dinyatakan. Kami kemudian menerima mesej daripada klien melalui fungsi recvfrom() dan menghantar semula respons kepada klien melalui fungsi sendto(). Program ini secara berterusan menerima dan menghantar data melalui gelung, dengan itu mencapai fungsi perbualan berterusan.

Sila ambil perhatian bahawa memandangkan UDP ialah protokol tanpa sambungan, kebolehpercayaan dan keteraturan mesej tidak dapat dijamin. Semasa pembangunan sebenar, anda mungkin perlu mempertimbangkan faktor ini dan menulis kod yang lebih mantap.

Nota

1 Semasa menjalankan kod, kod pelayan mesti dimulakan terlebih dahulu

2 pengekodan boleh menyebabkan mesej pengecualian diterima (Mac: utf-8 Windows: gbk).

Atas ialah kandungan terperinci Bagaimana Python menggunakan UDP untuk melaksanakan komunikasi klien dan pelayan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam