簡體   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