2012-06-04 103 views
0

我正在使用NIO線程,其中ServerSocketChannel將被打開並且客戶端端口將被綁定。但是當我們嘗試從Socket chanel讀取數據時,例外顯示。如果有人提供解決方案,這將是非常有意義的。由同級java.net.SocketException重置的連接:傳輸端點未連接

Connection reset by peer java.net.SocketException: Transport endpoint is not connected 
    at sun.nio.ch.SocketChannelImpl.shutdown(Native Method) 
    at sun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:669) 
    at sun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:386) 
    at iyp.trncomms.ConnRecordWriter.checkShutDown(ConnRecordWriter.java:131) 
    at iyp.trncomms.ConnRecordWriter.continueWriting(ConnRecordWriter.java:214) 
    at iyp.trncomms.ConnRecordWriter.retry(ConnRecordWriter.java:101) 
    at iyp.trncomms.ConnRecordWriter.shutDown(ConnRecordWriter.java:92) 
    at iyp.trncomms.ConnRecord$WorkingState.toOnHoldState(ConnRecord.java:1224) 
    at iyp.trncomms.ConnRecord$WorkingState.onInputError(ConnRecord.java:1152) 
    at iyp.trncomms.ConnRecord.read(ConnRecord.java:124) 
    at iyp.trncomms.NIO.run(NIO.java:137) 

回答

0

Connection reset by peer是非常明確的。您打開了連接,但遠程端在您的代碼執行之前關閉了它。您需要調查遠程系統上的日誌,以瞭解連接過早關閉的原因。

+0

@ user1435862注意它可能在當前的shutdownOutput()方法調用之前發生了很多秒。 – EJP

0

您似乎在錯誤情況下調用shutdownOutput()。這是行不通的:你已經有一個錯誤,這將導致另一個。只需關閉頻道。

相關問題