java - 强制 MINA niosocketacceptor 清理

标签 java sockets nio apache-mina

我开始使用 mina 对套接字进行异步写入,但现在我似乎无法关闭 session 。有没有办法强制 mina 关闭所有托管 session 或清理?这就是我现在要清理的东西:

if(this.acceptor.isActive()) {
  for(IoSession session : this.acceptor.getManagedSessions().values()) {
      session.close(true);
  }

  this.acceptor.unbind();
  this.acceptor.dispose();
}

谢谢

最佳答案

你把代码放在哪里了?

我只是像下面这样使用循环,所有 session 都关闭了。首先,运行服务器并在 10 秒内启动 3 个客户端。当 10 秒结束时,您会看到所有客户的 session 都将关闭。

import java.net.InetSocketAddress;
import java.nio.charset.Charset;

import org.apache.mina.core.service.IoAcceptor;
import org.apache.mina.core.session.IoSession;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.codec.textline.TextLineCodecFactory;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;

public class MinaServer {

    public static void main(String[] args) throws Exception {

        IoAcceptor acceptor = new NioSocketAcceptor();
        acceptor.getFilterChain().addLast("logger", new LoggingFilter());
        acceptor.getFilterChain().addLast(
                "codec",
        new ProtocolCodecFilter(new TextLineCodecFactory(Charset
                .forName("UTF-8"))));

        acceptor.setHandler(new ServerHandler());
        acceptor.bind(new InetSocketAddress(1071));

        Thread.sleep(10000);

        if (acceptor.isActive()) {
            for (IoSession ss : acceptor.getManagedSessions().values()) {
                ss.close(true);
            }

        }
    }
}

关于java - 强制 MINA niosocketacceptor 清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5356926/

相关文章:

java - 获取循环外的列表

c - 为什么通过网络发送的数据会转换为网络字节序?

Java NIO 选择器 select() 返回 0,尽管 channel 已准备就绪

java - 将 URL 转换为路径而不抛出异常

java - ByteBuffer 可以实现 DataOutput/DataInput 吗?

java - 如何将对象从一个 case 语句传递到另一个 case 语句

java - 更新 Android Studio Canary beta 1 后。我收到错误 min sdk 26

java - 我们如何将 JML (openJML) 应用于 Java 代码?

java - 如何使用套接字编程将消息发送到另一个android手机?

c++ - QTcpSocket 两种客户端-服务器通信方式