2012-06-04 100 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()。这是行不通的:你已经有一个错误,这将导致另一个。只需关闭频道。

相关问题