我在插座上设置了计时器。如果在30秒内没有收到任何连接请求,程序将完成。无论如何,我想把这30秒作为计时器打印到stdout中,这样用户就可以看到还剩多少秒了。如果在计时器过期之前有一个连接请求,我想停止计时器并继续执行代码,就像什么都没发生一样。有什么帮助吗?这是我的代码片段:
while True:
try:
s_TCP.settimeout(30)
print ("Waiting for a connection...")
s_TCP.listen(1)
#I'd like to set the timer here
connection, addr= s_TCP.accept()
print ("\nConnection established")
except socket.timeout:
print ("Timer expired")
s_TCP.close()
sys.exit()
except socket.error:
print ("Couldn't connect to the client")
s_TCP.close()
sys.exit()
提前谢谢!!你知道吗
简单的答案是设置一个较短的超时,并尝试
accept
几次。因为套接字已经在listen
中,所以在对accept
的调用之间不会丢失任何连接尝试。记住在接受连接后将超时值重置为更大的值。你知道吗相关问题 更多 >
编程相关推荐