2013-06-20 27 views
9

我有一個複雜的巨蟒正試圖打開通過有什麼能爲一個套接字錯誤的原因「[錯誤9]壞文件描述符」

self.socket.close() 
# doing something else 
self.socket.connect((host, port)) 

,但所有的套接字連接(2.7.3)腳本我得到的是以下套接字錯誤:

error: [Errno 9] Bad file descriptor 

host:port接受的連接,因爲我已經手動驗證了這一點與nc host port。那麼,可能的原因是什麼可能的原因,我得到這個錯誤打開一個連接到給定的端口,實際工作?

我不能也不會發布完整的腳本,因爲它對於這個問題來說太複雜和不切實際。我只想知道這個錯誤的所有可能的原因,以及如何檢查它們並修復它們。

+4

閱讀'socket.close()'的文檔。一旦關閉它,你就不能在任何操作(包括'connect')中重用它。它需要通過調用'socket.socket'重新初始化。 – Thomas

回答

25

您將需要創建一個新的套接字對象。也許self.socket = socket.socket()關閉之前的套接字並在連接之前。

+0

Bongo就是這樣!非常感謝你。 – Alex

相關問題