Java:Apache Mina IoAcceptor无法在linux中解除绑定
我正在运行一个webapp,其中有一个 org.apache.mina.common.IoAcceptor 举例说明如下:Java:Apache Mina IoAcceptor无法在linux中解除绑定,java,linux,io,port,mina,Java,Linux,Io,Port,Mina,我正在运行一个webapp,其中有一个 org.apache.mina.common.IoAcceptor 举例说明如下: IoAcceptor acceptor = new SocketAcceptor(); SocketAcceptorConfig config = (SocketAcceptorConfig) acceptor.getDefaultConfig(); config.setReuseAddress(true); config.getFilterChain().addLast(
IoAcceptor acceptor = new SocketAcceptor();
SocketAcceptorConfig config = (SocketAcceptorConfig) acceptor.getDefaultConfig();
config.setReuseAddress(true);
config.getFilterChain().addLast("codec", new ProtocolCodecFilter(newFIXProtocolCodecFactory()));
acceptor.bind(new InetSocketAddress(port), clientHandler);
这一切都很顺利——我们整天在郁金香地上接受联系,同时与远程客户交谈
问题是在尝试断开连接时
到目前为止,我正在尝试一个简单的
接受者解除绑定()
这在Windows中似乎工作得很好,但当我部署到运行在linux上的Tomcat服务器时,即使理论上我应该断开连接,端口似乎仍在侦听。(netstat和my无法打开此端口的套接字确认)
我认为我的问题与:
这当然是一个例子:
根据,unbind()应该可以工作。然而,我发现我需要更有力地让它在Android上可靠地工作。YMMV
acceptor.setCloseOnDeactivation(true);
for (IoSession ss : acceptor.getManagedSessions().values()) {
ss.close(true);
}
acceptor.unbind();
acceptor.dispose();
我几乎不记得告诉你我看到了什么,就继续往前走,但丹佛密码9的回声把我带回来了。哇,我以为这是一个失败的事业!两个月后,有人给出了答案。你是对的,解除绑定应该是有效的——在大多数情况下确实有效——但如果你说的更有力一点,它就会起作用!谢谢