7

我正在使用 netty 编写 SSL 服务器,遵循安全聊天示例。

我有自动化测试

  1. 打开一个 ssl 连接
  2. 来回交流一阵子
  3. 关闭频道

(即客户端完成后关闭通道)

测试全部通过,我的管道中有另一个处理程序实现了“exceptionCaught”。有时,当客户端关闭通道时,这会在服务器上生成一个 ExceptionCaught 事件

java.io.IOException: An established connection was aborted by the software in your host machine
   at sun.nio.ch.SocketDispatcher.read0(Native Method)
   at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
   at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
   at sun.nio.ch.IOUtil.read(IOUtil.java:186)
   at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
   at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:66)
   at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:364)
   at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:238)
   at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
   at java.lang.Thread.run(Thread.java:722)

通过在 SSLHandler 上方和下方添加一个简单的日志记录下游处理程序,我确定 SSLHandler 在客户端关闭通道后似乎正在生成下游写入事件,但我不确定这是否相关。

关于这里发生了什么的任何指示?

4

0 回答 0