Сокет Python на основе udp может отправлять-получать только один раз в потоке - PullRequest
0 голосов
/ 10 июня 2019

python: udp-сокет только отправляет-получает один раз в потоке

Но я могу использовать udp-socket для отправки нескольких запросов в цикле без потока

class mydo(threading.Thread):
    def __init__(self,count):
        super(mydo, self).__init__()
        self.count = count
    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 !!"]})
            if 0 == self.count:
                request = json.dumps({"Request": ["setMessage", "Hello @@@"]})
            sock.sendto(request, ('127.0.0.1', 8080))
            tmp = sock.recvfrom(1024)
            sock.close()
numOfThreads = 1
threads = []
count = 50
for i in range(numOfThreads):
    t = mydo(count)
    threads.append(t)
for t in threads:
    t.start()

Что ж, в потоке сокет отправляет только последний запрос (ожидается 50), а сервер получает только последний запрос.

...