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的时候才输出结果,然后服务器也只收到一个请求

阅读 4.6k
1 个回答

问题应该在你的UDP服务器上,何不贴下你的server端代码。
简单几行python代码写的udp server测下来,并没有出现楼主描述的现象。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题