Python中的数据报

数据块使用用户数据报协议或UDP协议在客户端和服务器之间移动。两个通信端点需要IP地址和端口号来建立通信。一个端点称为发送方,另一端点称为接收方。在此协议中,发送方不跟踪发送的数据包,由接收方决定是否接受所有数据包。

发件人计划

以下python程序使用套接字模块创建发送者的程序。我们声明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("收到消息:", data)

输出结果

运行上面的代码给我们以下结果-

收到消息: Hello UDP!