code: @Override
      public void createAsync(SocketDestination dest,
                              KeyedResourcePool<SocketDestination, SocketAndStreams> pool)
              throws Exception {
          Socket socket = new Socket();
          socket.setReceiveBufferSize(this.socketBufferSize);
          socket.setSendBufferSize(this.socketBufferSize);
          socket.setTcpNoDelay(true);
          socket.setSoTimeout(soTimeoutMs);
          socket.setKeepAlive(this.socketKeepAlive);
          socket.connect(new InetSocketAddress(dest.getHost(), dest.getPort()), soTimeoutMs);
  
          recordSocketCreation(dest, socket);
  
          SocketAndStreams sands = new SocketAndStreams(socket, dest.getRequestFormatType());
          negotiateProtocol(sands, dest.getRequestFormatType());
  
          pool.checkin(dest, sands);
      }
docs: Create a socket for the given host/port