当我尝试关闭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)
有什么东西可以阻止频道关闭吗?我可以用另一种方式强制关闭吗?
谢谢!
closeFuture.sync()不是用于关闭Channel而是允许你阻塞直到Channel关闭.要关闭频道,您可以调用Channel.close().