gpt4 book ai didi

python - UDP Socket 没有收到任何带有 python 的消息

转载 作者:行者123 更新时间:2023-12-03 11:59:03 25 4
gpt4 key购买 nike

我正在尝试通过 UDP 套接字将消息从 Raspberry Pi(Ubuntu 20)发送到笔记本电脑(Virtualbox Ubuntu 20)。所以我使用https://wiki.python.org/moin/UdpCommunication中的简单代码
发送(来自树莓派)

import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5005
MESSAGE = b"Hello, World!"

print("UDP target IP: %s" % UDP_IP)
print("UDP target port: %s" % UDP_PORT)
print("message: %s" % MESSAGE)

sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
接收(从笔记本电脑)
import socket

UDP_IP = "127.0.0.1"
UDP_PORT = 5005

sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_DGRAM) # UDP
sock.bind((UDP_IP, UDP_PORT))

while True:
data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
print("received message: %s" % data)
我试过 UDP_IP = "0.0.0.0"在两端。
我在 RPI 端尝试了笔记本电脑的 IP 地址。
我在两端都尝试了两台机器的IP地址。
我试过 sock.bind(("", UDP_PORT))绑定(bind)所有。
我尝试在防火墙设置中添加 UDP 端口号。
我检查了这个论坛上与此相关的多个问题。
尽管如此,我还是无法在笔记本电脑接收端收到任何数据包。我不知道出了什么问题。
请指教。

最佳答案

问题可能出在 IP 地址中,因为您使用 IP '127.0.0.1' (localhost) 来访问外部设备。请找出您设备的 IP,尝试使用 ifconfig Linux 命令。另外,请检查是否没有任何东西阻止您的连接。
考虑到对于 socket.bind(address) 你可以使用 '0.0.0.0' 而对于 socket.sendto(bytes, address) 你应该使用你想要发送到的设备的 IP。
我建议你下载一个名为 Hercules 的程序,使用这个程序你可以创建一个 UDP 对等体来找出什么是不正常的。例如,您可以在一侧使用 python,而在另一侧使用 Hercules,以排除代码执行一侧的错误,您还可以尝试两个 Hercules 连接,看看是否可以建立通信,在这种情况下,问题很可能与问题有关对于代码执行,另一方面,如果您无法在两个 Hercules UDP 对等方之间建立连接,则问题很可能与设备或网络本身有关。

关于python - UDP Socket 没有收到任何带有 python 的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63182541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com