При прослушивании данных продолжайте слушать python сервера портов udp с помощью recvfrom () - PullRequest
0 голосов
/ 05 июня 2018

У меня есть простой сервер

while True:
    d = s.recvfrom(UDP_BUFFER_SIZE)
    process(d)

и простой клиент:

while True:
    sock.sendto(data, addr):

Но я обнаружил, что во время обработки сервер больше не прослушивает, и я теряю данныечто сделал, то получил.Я знаю, что UDP может потерять данные, но здесь реализация UDP и обработка, которая может занять слишком много времени, мешают мне собирать данные.

Как можно обрабатывать полученные данные и при этом прослушивать порт?Даже экспорт recvfrom () в поток, вероятно, будет иметь некоторое время между прослушиванием:

while True:
    d = s.recvfrom(UDP_BUFFER_SIZE)
    export_data(d) # make it faster, but export time can still miss packets.
...