0

我正在用 Java 编写一个 BASIC NIO 程序,

 ServerSocketChannel serverChannel = ServerSocketChannel.open(  );
 ServerSocket serverSocket = serverChannel.socket(  );
 Selector selector = Selector.open(  );
 serverSocket.bind (new InetSocketAddress (1234));
 serverChannel.configureBlocking (false);
 serverChannel.register (selector, SelectionKey.OP_ACCEPT);

当我执行以下操作时

 int n = selector.select();

它从来没有从这个语句中出来,我可以指定 Timeout 值,每次 n 的值为 0 时都这样做

4

1 回答 1

2

请阅读 javadocs...如果选择了某个 OP,它将只有 n > 0。如果接受套接字,这将在您的示例中发生。只需执行一个 telnet localhost 1234,您就会看到它在运行。

于 2013-08-31T18:39:24.363 回答