Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 强制MINA niosocketacceptor清理_Java_Sockets_Nio_Apache Mina - Fatal编程技术网

Java 强制MINA niosocketacceptor清理

Java 强制MINA niosocketacceptor清理,java,sockets,nio,apache-mina,Java,Sockets,Nio,Apache Mina,我开始使用mina对套接字进行异步写入,但现在似乎无法关闭会话。有没有办法强迫mina关闭所有托管会话或清理?这就是我现在要做的清洁工作: if(this.acceptor.isActive()) { for(IoSession session : this.acceptor.getManagedSessions().values()) { session.close(true); } this.acceptor.unbind(); this.acceptor.di

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

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

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

谢谢你把密码放在哪里了

我只是使用下面的循环,所有会话都已关闭。首先,运行服务器并在10秒内启动3个客户端。您将看到10秒后所有客户端会话都将关闭

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

        }
    }
}

长镜头:isActive()是否会返回false,因为它可能处于另一种状态,但也没有关闭?