[英]TCP connection in python. Do you know how to print a timer whilst the socket is waiting to accept a connection request?
我在套接字中设置了一个计时器。 如果在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
的调用之间不会丢失任何连接尝试。 请记住在接受连接后将超时重置为更大的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.