【发布时间】:2020-07-02 17:09:34
【问题描述】:
这是打印“已收到”:
connection, clientAddr = mysocket.accept()
data = connection.recv(256)
print("Received")
这是打印“超时”:
connection, clientAddr = mysocket.accept()
mysocket.setblocking(0)
readable, writeable, exceptional = select.select([mysocket], [], [], 5)
if mysocket in readable:
data = connection.recv(256)
print("Received")
else:
print("Timed out")
问题不在于 5 秒太短,而是在 5 秒内第一个代码块中接收到数据。
我尝试删除行,mysocket.setblocking(0),没有变化。
我尝试将if mysocket in readable: 更改为if readable: 并且还做了print(readable),仍然超时并打印输出“[]”。
编辑:我也尝试在else 块中使用mysocket.recv(256),它收到了数据。
我在 Linux 上运行它。
【问题讨论】: