我有套接字問題。我在我的電腦和手機之間創建了一個用於發送消息的套接字。當我關閉服務器或客戶端時,它會發送一個FIN數據包,並且它會一分鐘保持在FIN_WAIT2狀態。然而,另一方卡住在CLOSE_WAIT狀態,顯然不能關閉插座。我認爲套接字應該立即關閉,所以也許我應該在客戶端實現一個代碼,當服務器關閉套接字時關閉套接字,反之亦然。我怎樣才能做到這一點?爲什麼套接字的另一側沒有關閉套接字? (CLOSE_WAIT)?
0
A
回答
2
您需要關閉套接字通道的兩端。
如果服務器關閉到客戶端的連接,客戶端需要關閉客戶端上的連接,以便傳輸最後一個FIN
數據包(從客戶端到服務器)。這將觸發TCP state machine中的最後一個狀態轉換。
0
CLOSE_WAIT表示對等方已發送FIN,並且TCP正在等待本地應用程序關閉套接字。請參閱RFC 793.它不會自動發生。
相關問題
- 1. java套接字SocketException套接字關閉
- 2. close()沒有正確關閉套接字
- 3. 關閉套接字
- 4. 關閉套接字?
- 5. 爲什麼要關閉一個死的TCP套接字會影響另一個打開的TCP套接字?
- 6. 關閉UDP套接字沒有socket.close()
- 7. asyncore套接字沒有正確關閉
- 8. 關閉套接字連接
- 9. 如何關閉PrimeFaces套接字連接
- 10. 閉合的套接字,java.net.SocketException:套接字關閉
- 11. 套接字是否沒有EOF字符,除非寫入套接字關閉?
- 12. perl的關閉套接字
- 13. 爲什麼OutputStream.write()關閉套接字連接?
- 14. 「java.net.SocketException:套接字關閉」,而綁定一個UDP套接字
- 15. Apache套接字不關閉?
- 16. Codenameone關閉套接字
- 17. java.net.SocketException套接字已關閉
- 18. 套接字關閉異常
- 19. 套接字關閉時間
- 20. JMeter java.net.SocketException:套接字關閉
- 21. android SocketException:套接字關閉
- 22. 關閉HTML5 Web套接字
- 23. 套接字關閉問題
- 24. 安卓:關閉套接字
- 25. 關閉線程套接字
- 26. Java - 關閉UDP套接字
- 27. 套接字不斷關閉
- 28. 如何關閉套接字
- 29. 關閉套接字和Windows
- 30. Linux套接字未關閉
謝謝,但我不知道如何實現代碼來關閉客戶端連接。當我關閉服務器時,它會自動關閉其側面的插槽。我應該測試一些條件還是在客戶端捕獲一些異常,並在出現問題時關閉套接字?這將是實現這一目標的方式嗎? – cracq 2013-02-11 13:37:14
@cracq當套接字的遠端關閉時,本地端變爲可讀,並且隨後的讀操作將以零長度讀取返回。這意味着套接字已經很好地從遠端關閉,並且你應該關閉你的端點。 – 2013-02-11 13:38:42