Socket java.net.SocketException: Connection reset的解決方案


上面這段代碼,是最常用的的socket 發送方式,對於一般的socket鏈接都適用。但是在這里跟銀行聯調時一直報了一個錯:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at java.net.SocketInputStream.read(SocketInputStream.java:108)
經查閱問題描述如下:
1,如果一端的Socket被關閉(或主動關閉,或因為異常退出而 引起的關閉),另一端仍發送數據,發送的第一個數據包引發該異常(Connect reset by peer)。

2,一端退出,但退出時並未關閉該連接,另一端如果在從連接中讀數據則拋出該異常(Connection reset)。簡單的說就是在連接斷開后的讀和寫操作引起的。

我這里是客戶端,socket最后關閉,原因只能是2。說明對方在把數據返回后,就把socket關閉了,而客戶端還在讀數據。所有檢查了下服務器的代碼,是發送反饋的資源未關閉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM