我正在开发基于Java服务器客户端的应用程序,并使用Netty(4.0.27.Final)进行TCP套接字连接。我遇到了客户端的问题。
在客户端中,我使用一个BootStrap,一个NioEventLoopGroup用于多个客户端(100多个并发客户端),并为每个新客户端连接调用以下内容。
b.handler(new MyConnectionInitializer());
b.connect(IP, PORT).sync().channel().closeFuture().sync();
现在,在完成工作后,每个客户端都会调用ctx.disconnect()
。调用它之后,所有客户端都会收到ChannelInactive并连接到服务器,以便所有客户端断开连接。虽然我只是希望只有调用ctx.disconnect
的客户端才能断开连接。
我应该调用其他函数而不是ctx.disconnect()
吗?
任何帮助表示感谢。
答案 0 :(得分:1)
您应该使用close()
代替disconnect()
。据我所知disconnect()
实际关闭了连接(以及可能仍然打开的所有其他频道),而close()
仅关闭当前频道。
如果我写错了,请有人纠正我。