当我尝试关闭io.netty.channel.Channel TCP / IP客户端连接时,My Netty应用程序挂起。
我做:
ch.isOpen(); //this is TRUE
ch.closeFuture().sync(); //never returns
线程调用同步的堆栈跟踪就在这里。
JavaFX Application Thread@583, prio=5, in group 'main', status: 'WAIT'
at java.lang.Object.wait(Object.java:-1)
at java.lang.Object.wait(Object.java:502)
at io.netty.util.concurrent.DefaultPromise.await(DefaultPromise.java:260)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:129)
at io.netty.channel.DefaultChannelPromise.await(DefaultChannelPromise.java:28)
at io.netty.util.concurrent.DefaultPromise.sync(DefaultPromise.java:224)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:117)
at io.netty.channel.DefaultChannelPromise.sync(DefaultChannelPromise.java:28)
at MyClient.stop(MyClient.java:46)
是否有可以阻止频道关闭的内容?我可以用另一种方式强制关闭吗?
谢谢!
答案 0 :(得分:6)
closeFuture.sync()不是用于关闭频道,而是允许您阻止频道关闭。要关闭频道,您可以调用Channel.close()。