請參閱在輸出例如: connection refused無效參數遵循連接在Python套接字拒絕
我就是第一次調用s.connect(的問題)拋出「連接被拒絕」,但第二次調用拋出「無效的論點」。這就像第一次調用將套接字對象置於某種錯誤狀態。有沒有辦法重置它?
感謝
請參閱在輸出例如: connection refused無效參數遵循連接在Python套接字拒絕
我就是第一次調用s.connect(的問題)拋出「連接被拒絕」,但第二次調用拋出「無效的論點」。這就像第一次調用將套接字對象置於某種錯誤狀態。有沒有辦法重置它?
感謝
要調用此:
s.connect((gethostname(), 4444))
gethostname()
所涉及的不僅僅是連接到服務器的更多。它初始化套接字的變量。
下次撥打電話connect
時,s
已經有一個值,但是無效。所以,你得到Invalid argument
。
注意:s.connect()
實際上調用connect()
並將s
作爲第一個參數,因爲connect定義爲def connect(self, ...)
。
從示例輸出的頂部,gethostname()只返回一個字符串,該字符串被傳遞給connect()。你的意思是connect()初始化套接字變量?有沒有辦法「清除」套接字,以便下一次connect()調用不會拋出無效參數? – user1979957
我發現解決此問題的一種方法是每次都重新創建套接字變量s。所以在每個connect()之前,我都這樣做:s = socket(AF_INET,SOCK_STREAM)但是這看起來很浪費且效率低下。這是最好的方式嗎? – user1979957
您可能需要創建一個新的套接字。 – ATOzTOA
你爲什麼不問在[連接拒絕](http://stackoverflow.com/questions/12394950/connection-refused)或在這個問題中包含必要的代碼。 –
原始帖子中的唯一選項是編輯問題或發佈答案。出於某種原因,添加評論的此選項不可用。我想過編輯這個問題,但這似乎改變了線程的內容,而我沒有發佈答案,所以這似乎是最佳的行動方案。對不起,如果我沒有做對。 – user1979957