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

2024-04-19 07:05:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在插座上设置了计时器。如果在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()

提前谢谢!!你知道吗


Tags: theto代码程序closestdoutsysexit
1条回答
网友
1楼 · 发布于 2024-04-19 07:05:21

简单的答案是设置一个较短的超时,并尝试accept几次。因为套接字已经在listen中,所以在对accept的调用之间不会丢失任何连接尝试。记住在接受连接后将超时值重置为更大的值。你知道吗

相关问题 更多 >