code: public void start() throws Exception
      {
          if (isStarted())
              throw new IllegalStateException("Started");
  
          // Create a new server socket and set to non blocking mode
          _acceptChannel= ServerSocketChannel.open();
          _acceptChannel.configureBlocking(false);
  
          // Bind the server socket to the local host and port
          _acceptChannel.socket().bind(_address);
  
          // Read the address back from the server socket to fix issues
          // with listeners on anonymous ports
          _address= (InetSocketAddress)_acceptChannel.socket().getLocalSocketAddress();
  
          // create a selector;
          _selector= Selector.open();
  
          // Register accepts on the server socket with the selector.
          _acceptChannel.register(_selector, SelectionKey.OP_ACCEPT);
  
          // Start selector thread
          _selectorThread= new SelectorThread();
          _selectorThread.start();
  
          // Start the thread Pool
          super.start();
          log.info("Started SocketChannelListener on " + getHost()+":"+getPort());
      }
docs: /* ------------------------------------------------------------