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!

更新日期: 2019 年 10 月 17 日

497 次浏览

开启你的 职业生涯

完成课程以获得认证

开始
广告