用Netty5开发通信框架时出现客户端强制关闭程序,服务端捕获到客户端断开连接并关闭channel;客户端再次启动程序连接服务端会连接不上
服务端代码:
服务端handler:
客户端代码:
客户端handler:
先启动服务端,等待客户端连接
第一次启动客户端建立连接,连接建立时客户端正常调用channelActive方法发送数据,服务端正常接口数据并返回响应,客户端正常接收响应。当客户端程序执行完成,关闭程序,服务端可以捕获到客户端断开的信息:
服务端捕获客户端断开后作出处理,清理channel并关闭ChannelHandlerContext并抛出异常:
再次启动客户端程序连接服务端,程序依然可以进到channelActive发送消息,(channelActive触发是否可以确定已经建立了TCP连接?)
然而虽然已经向服务端writeAndFlush,但是服务端并没有收到任何消息,客户端会抛出异常:
跟踪异常,是客户端在向chennal写数据时抛出错误!
为什么我服务端已经清理了客户端信息并关闭了通道,客户端程序第二次连接发送数据会出现异常呢?
求大神解答!