code: public void setSocketTimeout(int timeout)
          throws SocketException, IllegalStateException {
          assertOpen();
          if (this.socket != null) {
              this.socket.setSoTimeout(timeout);
          }
      }
docs: Sets <code>SO_TIMEOUT</code> value directly on the underlying {@link Socket socket}.
  This method does not change the default read timeout value set via
  {@link HttpConnectionParams}.
  
  @param timeout the timeout value
  @throws SocketException - if there is an error in the underlying
  protocol, such as a TCP error.
  @throws IllegalStateException if not connected
  
  @since 3.0