0

独自のスレッドでJavaNIOサーバーを実装しようとしています。

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が発生することです。私のrunメソッドで。あなたは私を助けることができます?問題は見当たりません。

4

1 に答える 1

0

問題は、サーバーコンストラクターが終了する前に、スレッドのコンストラクターがスレッドを実行していたことでした。

したがって、セレクターのNullpointer。

于 2012-11-11T18:56:47.980 に答える