org.apache.http.conn.scheme

## Interface SchemeSocketFactory

All Known Subinterfaces:
  LayeredSchemeSocketFactory, SchemeLayeredSocketFactory

All Known Implementing Classes:
  PlainSocketFactory, SSLSocketFactory

Deprecated.
(4.3) use `ConnectionSocketFactory`

    @Deprecated
    public interface SchemeSocketFactory

A factory for creating, initializing and connecting sockets. The factory encapsulates the logic for establishing a socket connection.

Since:
  4.1

### Method Summary

Methods
`Socket` `connectSocket(Socket sock, InetSocketAddress remoteAddress, InetSocketAddress localAddress, org.apache.http.params.HttpParams params)` Deprecated. Connects a socket to the target host with the given remote address.
`Socket` `createSocket(org.apache.http.params.HttpParams params)` Deprecated. Creates a new, unconnected socket.
`boolean` `isSecure(Socket sock)` Deprecated. Checks whether a socket provides a secure connection.

### Method Detail

#### createSocket

    Socket createSocket(org.apache.http.params.HttpParams params)
                        throws IOException

Deprecated.
Creates a new, unconnected socket. The socket should subsequently be passed to `connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams)`.

Parameters:
  `params` - Optional `parameters`. In most cases these parameters will not be required and will have no effect, as usually socket initialization should take place in the `connectSocket(Socket, InetSocketAddress, InetSocketAddress, HttpParams)` method. However, in rare cases one may want to pass additional parameters to this method in order to create a customized `Socket` instance, for instance bound to a SOCKS proxy server.
Returns:
  a new socket
Throws:
  `IOException` - if an I/O error occurs while creating the socket

#### connectSocket

    Socket connectSocket(Socket sock,
                       InetSocketAddress remoteAddress,
                       InetSocketAddress localAddress,
                       org.apache.http.params.HttpParams params)
                         throws IOException,
                                UnknownHostException,
                                ConnectTimeoutException

Deprecated.
Connects a socket to the target host with the given remote address.

Please note that `HttpInetSocketAddress` class should be used in order to pass the target remote address along with the original `HttpHost` value used to resolve the address. The use of `HttpInetSocketAddress` can also ensure that no reverse DNS lookup will be performed if the target remote address was specified as an IP address.

Parameters:
  `sock` - the socket to connect, as obtained from `createSocket`. `null` indicates that a new socket should be created and connected.
  `remoteAddress` - the remote address to connect to.
  `localAddress` - the local address to bind the socket to, or `null` for any
  `params` - additional `parameters` for connecting
Returns:
  the connected socket. The returned object may be different from the `sock` argument if this factory supports a layered protocol.
Throws:
  `IOException` - if an I/O error occurs
  `UnknownHostException` - if the IP address of the target host can not be determined
  `ConnectTimeoutException` - if the socket cannot be connected within the time limit defined in the `params`
See Also:
  `HttpInetSocketAddress`

#### isSecure

    boolean isSecure(Socket sock)
                     throws IllegalArgumentException

Deprecated.
Checks whether a socket provides a secure connection. The socket must be `connected` by this factory. The factory will not perform I/O operations in this method.

As a rule of thumb, plain sockets are not secure and TLS/SSL sockets are secure. However, there may be application specific deviations. For example, a plain socket to a host in the same intranet ("trusted zone") could be considered secure. On the other hand, a TLS/SSL socket could be considered insecure based on the cipher suite chosen for the connection.

Parameters:
  `sock` - the connected socket to check
Returns:
  `true` if the connection of the socket should be considered secure, or `false` if it should not
Throws:
  `IllegalArgumentException` - if the argument is invalid, for example because it is not a connected socket or was created by a different socket factory. Note that socket factories are not required to check these conditions, they may simply return a default value when called with an invalid socket argument.