NIO就绪处理之OP_ACCEPT

OP_ACCEPT的处理与OP_CONNECT基本一样,服务端监听,并注册OP_ACCEPT事件后,就已准备好接受客户端的连接了

ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
ssc.socket().bind(new InetSocketAddress(port));
channel.register(selector, SelectionKey.OP_ACCEPT);

当一个客户端连接到来时,OP_ACCEPT事件就绪。

if (key.isValid() && key.isAcceptable()) {
    ServerSocketChannel ssc = (ServerSocketChannel) key.channel();
    SocketChannel ch = ssc.accept();
    if (ch != null) {
        ch.configureBlocking(false);
        SelectionKey sk = ch.register(selector, SelectionKey.OP_READ);
    }
}

你可能感兴趣的:(Java)