org.apache.hc.client5.http.socket

## Interface ConnectionSocketFactory

All Known Subinterfaces:
  LayeredConnectionSocketFactory

All Known Implementing Classes:
  PlainConnectionSocketFactory, SSLConnectionSocketFactory

    public interface ConnectionSocketFactory

A factory for creating and connecting connection sockets.

Since:
  4.3

### Method Summary

Methods
`Socket` `connectSocket(org.apache.hc.core5.util.TimeValue connectTimeout, Socket sock, org.apache.hc.core5.http.HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, org.apache.hc.core5.http.protocol.HttpContext context)` Connects the socket to the target host with the given resolved remote address.
`Socket` `createSocket(org.apache.hc.core5.http.protocol.HttpContext context)` Creates new, unconnected socket.

### Method Detail

#### createSocket

    Socket createSocket(org.apache.hc.core5.http.protocol.HttpContext context)
                        throws IOException

Creates new, unconnected socket. The socket should subsequently be passed to `connectSocket` method.

Returns:
  a new socket
Throws:
  `IOException` - if an I/O error occurs while creating the socket

#### connectSocket

    Socket connectSocket(org.apache.hc.core5.util.TimeValue connectTimeout,
                       Socket sock,
                       org.apache.hc.core5.http.HttpHost host,
                       InetSocketAddress remoteAddress,
                       InetSocketAddress localAddress,
                       org.apache.hc.core5.http.protocol.HttpContext context)
                         throws IOException

Connects the socket to the target host with the given resolved remote address.

Parameters:
  `connectTimeout` - connect timeout.
  `sock` - the socket to connect, as obtained from `createSocket(HttpContext)`. `null` indicates that a new socket should be created and connected.
  `host` - target host as specified by the caller (end user).
  `remoteAddress` - the resolved remote address to connect to.
  `localAddress` - the local address to bind the socket to, or `null` for any.
  `context` - the actual HTTP context.
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