数据块使用用户数据报协议或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!