做了一个简单的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