2016-02-15 51 views
1

我想寫一個基於tcp套接字的服務器。在我讀的python文檔中,關閉套接字上的recv應該引發錯誤。但是,當客戶端關閉套接字時,服務器仍然可以在此套接字上使用recv並獲取空字符串。那麼我可以假設,如果recv在阻塞套接字上返回空字符串,該連接是否斷開或關閉?蟒蛇recv從封閉套接字

回答

0

您必須通過代碼處理IOError異常。

except IOError as io_error: 
    if io_error.errno == <YOUR CODE>: 
     do something 

參見:https://docs.python.org/2/library/errno.html#module-errno 爲獲得驗證碼

+0

但是,當客戶端程序崩潰或當客戶端意外關閉套接字,沒有任何預兆它不會引發任何異常。 'recv'然後在阻塞套接字上返回空字符串。 – fulaphex

+0

顯示你的情況。請簡單的客戶端和服務器。我不明白你是什麼意思 –

+0

http://pastebin.com/6e3z0aW1這裏都是應用程序 – fulaphex