我有一个简单的服务器
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.