python Udp socket通信服务器端无法返回数据?

做了一个简单的UDP服务器,其中有一部分:套接字1接收到addr1发来的数据,用套接字2发送信息到addr1,现在的问题是addr1处收不到信息


s1 = socket.socket(socket.AF_INET, socket.SOCK_DRGAM)

s2 = socket.socket(socket.AF_INET, socket.SOCK_DRGAM)

s1.bind("0.0.0.0", 12345)

# s1接收
data, addr = s1.recvfrom(1024)
# s2发送到addr
s2.sendto(b'OK', addr)

如果是同一个套接字可以正常收发(如下)

s = socket.socket(socket.AF_INET, socket.SOCK_DRGAM)
s.bind("0.0.0.0", 12345)

data, addr = s.recvfrom(1024)
s.sendto(b'OK', addr)

为什么上面的就不行呢?

这题你走进了一个误区。

如果是接收端,应该用while(True) 去接受。因为接收端不知道什么时候,才会接收到一个字符。

发送端可以任意发送。

正确写法参照这个。

Python UDP编程 - 简书 (jianshu.com)

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y