Python 中的数据报
数据块通过用户数据报协议或 UDP 协议在客户端和服务器之间移动。这两个通信端点需要 IP 地址和端口号来建立通信。一个端点称为发送者,另一个端点称为接收者。在此协议中,发送者不跟踪已发送的数据包,接收者可以选择是否接收所有数据包。
发送者程序
以下 Python 程序使用 socket 模块创建发送者程序。我们为 IP 地址和端口声明变量。然后向其中添加一条消息。sendto() 用于结合 IP 地址和端口号的消息。
范例
import socket UDP_IP = "localhost" UDP_PORT = 5050 MESSAGE = "Hello UDP! " print ("Sent Message: ", MESSAGE) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(bytes(MESSAGE, "utf-8"), (UDP_IP, UDP_PORT))
输出
运行以上代码会得到以下结果 -
Sent Message: Hello UDP!
接收者程序
同样,我们创建接收者程序,它将接收发送者程序发送的消息。下面程序中消息的大小限制为 1024 字节。bind() 函数将 IP 和端口绑定到接收到的数据。
范例
import socket UDP_IP = "localhost" UDP_PORT = 5050 s= socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind((UDP_IP, UDP_PORT)) while True: # buffer size is 1024 bytes data, addr = sock.recvfrom(1024) print("Received message:", data)
输出
运行以上代码会得到以下结果 -
Received message: Hello UDP!
广告