为什么我的selector.select()会挂起

时间:2013-08-31 18:34:29

标签: java nio

我正在用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时都这样做

1 个答案:

答案 0 :(得分:2)

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