0

我正在尝试在自己的线程中实现 Java NIO 服务器。

public class MyServer extends MyThread
{
   ServerSocketChannel server;
   Selector selector;

   public MyServer
   {
      super();
      this.server = ServerSocketChannel.open();
      this.server.configureBlocking(false);
      this.server.socket().bind(new java.net.InetSocketAddress(InetAddress.getLocalHost(), 6666));
      this.selector = Selector.open();
      this.server.register(selector,SelectionKey.OP_ACCEPT);
   }
   public void run()
   {
      while(true)
      {
          this.selector.select();
          Set<SelectionKey> keys = selector.selectedKeys();
          Iterator<SelectionKey> i = keys.iterator();
          // Do channel work there
      }
   }
}

问题是我在 this.selector.select(); 上得到了 NullpointerException 在我的运行方法中。你能帮我吗?我没有看到这个问题。

4

1 回答 1

0

问题是我的线程的构造函数在服务器构造函数完成之前运行线程。

因此,选择器上有一个 Nullpointer。

于 2012-11-11T18:56:47.980 回答