我有一个使用netty的应用程序:tcp监听端口。当连接到来时,它首先读取请求并写入响应。在读取部分中,我实现了REadTimeout处理程序,如果发生读取超时,则会抛出异常。问题是,在readtimeout异常中,我无法关闭与客户端的套接字连接,并且它永远等待套接字。如何在发生超时时终止/关闭客户端之间的套接字连接。
在exceptionCought方法中我试图关闭连接,但正如我告诉socket仍然存在。我可以为客户检查这个。
@Override
public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
throws Exception {
super.exceptionCaught(ctx, e);
Channel channel = e.getChannel();
channel.close();
//I tried below lines but does not close the socket.
//channel.disconnect();
//NettyHelper.close(channel);
//org.jboss.netty.channel.Channels.close(channel);
}