繁体   English   中英

python中的TCP连接。 你知道如何在套接字等待接受连接请求的同时打印定时器吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM