python udp socket 一个client线程只能”发送-接收“一次
client端多线程用udp socket发送多次数据,但是一个线程只能”发送-接收“一次。
Linux 下
相关代码
class mydo(threading.Thread):
def __init__(self, id, count):
super(mydo, self).__init__()
self.count = count
self.id = id
def run(self):
while self.count > 0:
self.count -= 1
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
request = json.dumps({"Request": ["setMessage", "Hello Shuai!!"]})
sock.sendto(request, ('127.0.0.1', 8080))
tmp = sock.recvfrom(1024)
print(self.count, tmp)
sock.close()
numOfThreads = 1
threads = []
count = 500
for i in range(numOfThreads):
t = mydo(i, count)
threads.append(t)
for t in threads:
t.start()
for t in threads:
t.join()
输出是(0, ('"Successfully!"', ('127.0.0.1', 8080)))
也就是当count变为0的时候才输出结果,然后服务器也只收到一个请求
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题应该在你的UDP服务器上,何不贴下你的server端代码。
简单几行python代码写的udp server测下来,并没有出现楼主描述的现象。