code: @Override
      public void run() {
          ExecutorService executorService = Executors.newFixedThreadPool(maxClients);
          try {
              serverSocket = new ServerSocket(port, maxClients);
              while (!shuttingDown) {
                  try {
                      Socket socket = serverSocket.accept();
                      debugConnection = new DebugConnection(socket);
                      executorService.submit(debugConnection);
                  } catch (SocketException e) {
                      // closed
                      debugConnection = null;
                  }
              }
          } catch (IOException e) {
              e.printStackTrace();
          } finally {
              try {
                  debugConnection = null;
                  serverSocket.close();
              } catch (Exception e) {
              }
              executorService.shutdownNow();
          }
      }
docs: Runs the server.