org.apache.hc.client5.http.socket

## Interface ConnectionSocketFactory

- All Known Subinterfaces:
    LayeredConnectionSocketFactory
  All Known Implementing Classes:
    PlainConnectionSocketFactory, SSLConnectionSocketFactory

      @Contract(threading=STATELESS)
      public interface ConnectionSocketFactory

  A factory for creating and connecting connection sockets.
  Since:
    4.3

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Socket` | `connectSocket(org.apache.hc.core5.util.TimeValue connectTimeout, Socket socket, 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 socket,
                             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.
        `socket` - 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

Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.