Netty抛出IOException:该套接字重置了与远程套接字的连接

时间:2013-07-02 09:51:27

标签: sockets netty reset ioexception

我正在使用Netty3.5.9(jdk1.6.43)进行套接字连接,大多数情况下,它运行良好,但有时会显示:

java.io.IOException:该套接字重置了与远程套接字的连接

at sun.nio.ch.FileDispatcher.read0(Native Method)

at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:33)

at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:234)

at sun.nio.ch.IOUtil.read(IOUtil.java:201)

at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)

at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:321)

at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)

at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:896)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)

at java.lang.Thread.run(Thread.java:735)

2013-7-2 8:54:18 org.jboss.netty.channel.SimpleChannelUpstreamHandler null 警告:EXCEPTION,请执行  cfca.xfraud.collector.system.sockettype.netty.NettyAnalyzerHandler.exceptionCaught()以便正确处理。

我的exceptionCaught()方法是:

public void exceptionCaught(ChannelHandlerContext ctx,ExceptionEvent e)抛出异常{

    log.error("", e.getCause());
    super.exceptionCaught(ctx, e);

}

虽然有时会显示IOException,但整个应用程序似乎没有任何不良影响并且仍然运行良好,那么真正的问题是什么,以及我应该更改代码以防止异常。

1 个答案:

答案 0 :(得分:0)

这没什么值得关注的......这意味着远程对等体关闭连接,netty在读取完成后检测到它。所以你可以安全地忽略异常。