我想區分服務器連接關閉的客戶端套接字的例外,就好像服務器套接字由於空閒超時而關閉,原因必須在客戶端生成爲空閒超時異常。與連接失敗異常等類似,連接失敗也是如此。請幫我解決這個問題。提前致謝。如何區分服務器套接字連接在客戶端套接字上關閉的異常?
1
A
回答
1
如果服務器正確地關閉了套接字,那麼在客戶端只有一個可能的異常,而不是客戶端必須捕捉並找出的一系列不同的異常。只有一個EOS指示:read()返回-1,readLine()返回null,readXXX()爲任何其他X引發EOFException。
如果由於網絡故障導致連接中斷,客戶端通過文本「連接重置」來獲得IOException。如果連接保持運行但服務器沒有發送數據,並且客戶端有讀取超時,則客戶端將收到SocketTimeoutException。這些都不意味着服務器已經關閉了連接(儘管服務器可能導致連接重置,我不會在這裏文檔化)。
如果您需要知道服務器爲什麼關閉了套接字,它將不得不通過消息告訴您。
1
相關問題
- 1. Java套接字 - 關閉到服務器套接字的telnet客戶端連接
- 2. 同時關閉服務器和客戶端套接字連接
- 3. 服務客戶端在perl後套接字連接關閉
- 4. 服務器異步套接字 - 檢測客戶端的關閉連接?
- 5. 異步客戶端套接字關閉?
- 6. 服務器套接字只在客戶端套接字關閉後打印
- 7. 連接多個客戶端的異步套接字服務器
- 8. java:關閉客戶端套接字重置服務器套接字
- 9. Javascript客戶端如何連接到PHp套接字服務器?
- 10. java套接字服務器和套接字客戶端之間的連接
- 11. C套接字服務器,Java套接字客戶端:阻塞!
- 12. Python套接字客戶端到Java套接字服務器
- 13. 將C套接字客戶端連接到C#套接字服務器
- 14. 套接字服務器未與JavaScript套接字客戶端連接
- 15. 連接NodeMCU Lua套接字客戶端與node.js套接字服務器
- 16. 我無法關閉服務器和客戶端之間的套接字連接
- 17. 套接字關閉異常
- 18. PHP套接字服務器/客戶端
- 19. 客戶端服務器udp套接字
- 20. 套接字java客戶端服務器
- 21. 客戶端 - 服務器套接字
- 22. 服務器/客戶端套接字
- 23. 客戶端服務器套接字C#
- 24. Python服務器客戶端套接字
- 25. Java套接字客戶端/服務器
- 26. java.net.SocketException異常:套接字關閉TCP客戶端服務器通信
- 27. Java客戶端服務器「套接字已關閉」
- 28. 如何在等待連接時關閉服務器套接字?
- 29. 無法關閉異步C#服務器套接字連接
- 30. 客戶端/服務器套接字異常問題
請參閱http://stackoverflow.com/questions/151590/java-how-to-detect-a-remote-side-socket-close&http://stackoverflow.com/questions/155243/why-is- it-impossible-without-attempting-io-to-detect-that-tcp-socket-was-grac – Zaki