我有一个应该只运行 10 秒的循环,但在循环内部我使用了阻塞函数,所以循环不会在 10 秒后中断,而是在阻塞函数之后中断。
endtime = time.time() + 10
while time.time() < endtime:
clientsocket, address = tcpServer.accept() # blocking
print("got another client!")
name = clientsocket.recv(1024)
print("bye")
我想在 10 秒后离开循环,但如果我在 10 秒过去之前进入它并且没有人试图连接,我就不会离开。
我该如何解决这个问题?
答案 0 :(得分:2)
你应该在 tcp 实例中设置超时时间,如下所示:
tcpServer.settimeout(10)