code: @Override
      protected void startConnector(String server, int port) {
          socketConnector = new NioSocketConnector();
          socketConnector.setHandler(ioHandler);
          future = socketConnector.connect(new InetSocketAddress(server, port));
          future.addListener(new IoFutureListener<ConnectFuture>() {
              @Override
              public void operationComplete(ConnectFuture future) {
                  try {
                      // will throw RuntimeException after connection error
                      session = future.getSession();
                  } catch (Throwable e) {
                      socketConnector.dispose(false);
                      // if there isn't an ClientExceptionHandler set, a RuntimeException may be thrown in handleException
                      handleException(e);
                  }
              }
          });
          // Now wait for the connect to be completed
          future.awaitUninterruptibly(CONNECTOR_WORKER_TIMEOUT);
      }
docs: {@inheritDoc}