@NotNull
  Short getServerVersion(final @NotNull Socket socket)
      throws IOException {
    try (
        final DataInputStream in = createDataInputStream(socket, KnownVersion.OLDEST);
        final DataOutputStream out = createDataOutputStream(socket, KnownVersion.OLDEST)) {
      return getServerVersion(in, out);
    }
  }
Send a request to a Locator

@param address The locator's address
@param request The request message
@param timeout Timeout for sending the message and receiving a reply
@param replyExpected Whether to wait for a reply
@return The reply, or null if no reply is expected. This may also return a null
        if we're unable to form a connection to the TcpServer before the given timeout elapses
@throws ClassNotFoundException if the deserializer throws this exception
@throws IOException if there is a problem interacting with the server
geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpClient.java