我正在用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时都这样做
答案 0 :(得分:2)
请阅读javadocs ...它只有n>如果选择了一些OP,则为0。如果接受套接字,这将在您的示例中发生。只需执行一个telnet localhost 1234,您就会看到它正在运行。