我正在使用NIO线程,其中将打开ServerSocketChannel并绑定客户端端口。但是当我们尝试从香奈儿插座读取数据时,下面会显示异常。如果有人提供解决方案,那就太好了。
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)
Connection reset by peer
非常明确。 您打开了连接,但远程端在执行代码之前关闭了它。 您需要调查远程系统上的日志,以了解连接过早关闭的原因。
您似乎在错误情况下调用shutdownOutput()
。这是行不通的:您已经遇到错误,这将导致另一个错误。只需关闭频道即可。