我有一个正在运行的线程正在从套接字连接中查找数据。当它是空的时候,它只是像我发现的那样坐在那里,但当它是空的时候我想经过它。我发现选择模块应该能够做到这一点,但现在它只是位于选择行。我在下面的一些研究中尝试过这一点,但就像我说的,现在它不再停在 data = sock.recv 处,而是停在第一行。有任何想法吗?谢谢。
while True:
readable, writable, exceptional = select.select([sock], [], [])
if readable:
data = sock.recv(1024)
else:
do something
最佳答案
正如您在 the documentation 中所读到的那样, select.select()
采用可选的第四个参数,采用超时值。
如果超时后 sock
仍不可读,则 read
为空。
你可以尝试类似的事情
while True:
readable, writable, exceptional = select.select([sock], [], [], 1.0)
if readable:
data = sock.recv(1024)
else:
print "nothing yet"
关于python - 当空 python 时继续 sock.recv(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24680124/