我創建了TCP Java客戶端/服務器應用程序,我們有兩個插槽:java.net.SocketException異常:套接字關閉TCP客戶端服務器通信
- 一個是交換消息。
- 二是文件傳輸。
我已經在服務器中創建,以通過接受ServerSockets創造插座一,二
2個ServerSockets。
首先,客戶端通過第一個套接字發送一些字節,以便它可以告訴服務器它需要哪個文件。
然後服務器通過第二個套接字發送文件到客戶端。
客戶端收到文件後,會嘗試將傳輸完成消息發送回服務器。
那裏我得到了封閉套接字的例外。
但是,我從來沒有關閉套接字到現在。
我只關閉分離文件的緩衝區。
即使我在發送文件後嘗試再次打開socketInputStream,錯誤仍然是一樣的。
此外,如果我不關閉緩存文件的緩衝區,客戶端不會得到文件。
服務器異常
錯誤的返回信息 - java.net.SocketException異常:插座關閉
客戶端異常
服務器響應 - 爪哇。 net.SocketException:導致軟件連接中止:套接字寫入錯誤
我在做什麼錯?
你應該真的添加一些代碼和堆棧跟蹤... –
確保你關閉連接的一端,如果不是這種情況比我確定你關閉了輸入或輸出流,請不要關閉它們,直到你確信你的數據通信已經結束,並且你想要向套接字發送數據時使用flush()方法 – Vijay
[官方原因爲「軟件導致連接中止:套接字寫入錯誤」](http:// stackoverflow.com/questions/2126607/official-reasons-for-software-caused-connection-abort-socket-write-error) – EJP