我一直在搜索这个问题,但我无法理解这个问题,因为它不是很普遍,我找不到解决方案来读取包含UTF-8文本的UDP数据包。
所以我创建一个套接字,它创建一个包含UTF-8文本的UDP数据包,然后我发送它:
import socket
UDP_IP = "127.0.0.1"
UDP_PORT = 80
MESSAGE = "Hello, World!"
sock = socket.socket(socket.AF_INET,
socket.SOCK_DGRAM)
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
让我们将其定义为sender.py
。
现在我想创建一个reciever.py
脚本,该脚本将在sender.py
之后执行。
我该怎么做?我听说Data, addr = udp.recvfrom(1024)
,但我不完全确定它是如何工作的/如何使用它。
因此,每当我一起执行它们时,Reciever.py
就可以打印发送的UDP数据包的UTF-8文本。
答案 0 :(得分:2)
你希望接收者做几件事:
sock
创建套接字socket.socket
。sock.bind
绑定到套接字。data, addr = sock.recvfrom(1024)
。请注意,接收器将处于休眠状态,等待它绑定到的套接字中出现消息。处理完数据后,循环将再次执行,接收器将重新进入休眠状态。
1024
对应于您可以接收的最大尺寸消息(大约1024
个字符,因为1
字符= 1
字节。如果您希望能够接收更大的消息,使这个值更大。
有关详细的代码示例,请参阅https://wiki.python.org/moin/UdpCommunication。