docs: public void shutdown() {
          shuttingDown = true;
          try {
              SocketAddress localAddress = serverSocket.getLocalAddress();
              if (localAddress instanceof InetSocketAddress) {
                  InetSocketAddress address = (InetSocketAddress) localAddress;
                  Socket client = new Socket(address.getHostName(), address.getPort());
                  client.setSoTimeout(1000); // waking the acceptor loop should be quick
                  new PingAgentProtocol().connect(client);
              }
          } catch (IOException e) {
              LOGGER.log(Level.FINE, "Failed to send Ping to wake acceptor loop", e);
          }
          try {
              serverSocket.close();
          } catch (IOException e) {
              LOGGER.log(Level.WARNING, "Failed to close down TCP port",e);
          }
      }