gpt4 book ai didi

Java:Apache Mina IoAcceptor 无法在 Linux 中解除绑定(bind)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:45 26 4
gpt4 key购买 nike

所以我正在运行一个带有实例的 webapp

org.apache.mina.common.IoAcceptor

这样实例化:

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);

好吧,一切都在顺利进行——我们整天都在郁金香花丛中接受连接,同时与远程客户交谈。

问题出在尝试断开连接时。

到目前为止,我正在尝试一个简单的,

acceptor.unbindAll();

这在 Windows 中似乎工作正常,但是当我部署到我在 Linux 上运行的 Tomcat 服务器时,即使在理论上我应该断开连接之后,该端口似乎仍在监听。 (netstat 和我无法打开此端口的套接字均已确认)

我相信我遇到了同样的问题: http://objectmix.com/apache/717994-unbind-not-working.html

这当然是一个实例: http://xkcd.com/979/

最佳答案

根据 their own test suite , unbind() 应该有效。但是,我发现我需要更加努力才能让它在 Android 上可靠地工作。 YMMV.

acceptor.setCloseOnDeactivation(true);
for (IoSession ss : acceptor.getManagedSessions().values()) {
ss.close(true);
}
acceptor.unbind();
acceptor.dispose();

我差点没忘记告诉你我看到了什么,但 DenverCoder9 的回声把我拉回来了。

关于Java:Apache Mina IoAcceptor 无法在 Linux 中解除绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14884501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com