2012-11-11 2 views
0

Java NIO 서버를 자체 스레드로 구현하려고합니다.Java NIO 스레드 selector.select() Nullpointer

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

질문에 스택 추적을 추가하십시오. –

+0

좋아, 알아 냈어. 문제는 내 스레드의 생성자가 서버 생성자가 완료되기 전에 스레드를 실행하고 있다는 것입니다. –

답변

0

문제는 서버 생성자가 완료되기 전에 내 스레드의 생성자가 스레드를 실행하고 있다는 것입니다.

따라서 선택자의 Nullpointer.

관련 문제