DefaultProtocolSocketFactory (HttpClient Library (Version 3.1))
Date: 2016-03-09

org.apache.commons.httpclient.protocol

## Class DefaultProtocolSocketFactory

- java.lang.Object
- - org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory

- All Implemented Interfaces:
    ProtocolSocketFactory

      public class DefaultProtocolSocketFactory
      extends java.lang.Object
      implements ProtocolSocketFactory

  The default class for creating protocol sockets. This class just uses the `socket` constructors.
  Since:
    2.0
  Author:
    Michael Becke

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultProtocolSocketFactory()` Constructor for DefaultProtocolSocketFactory.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.net.Socket` | `createSocket(java.lang.String host, int port)` Gets a new socket connection to the given host.
    `java.net.Socket` | `createSocket(java.lang.String host, int port, java.net.InetAddress localAddress, int localPort)` Gets a new socket connection to the given host.
    `java.net.Socket` | `createSocket(java.lang.String host, int port, java.net.InetAddress localAddress, int localPort, HttpConnectionParams params)` Attempts to get a new socket connection to the given host within the given time limit.
    `boolean` | `equals(java.lang.Object obj)` All instances of DefaultProtocolSocketFactory are the same.
    `int` | `hashCode()` All instances of DefaultProtocolSocketFactory have the same hash code.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultProtocolSocketFactory

          public DefaultProtocolSocketFactory()

      Constructor for DefaultProtocolSocketFactory.

  - ### Method Detail

    - #### createSocket

          public java.net.Socket createSocket(java.lang.String host,
                                     int port,
                                     java.net.InetAddress localAddress,
                                     int localPort)
                                       throws java.io.IOException,
                                              java.net.UnknownHostException

      Description copied from interface: `ProtocolSocketFactory`
      Gets a new socket connection to the given host.
      Specified by:
        `createSocket` in interface `ProtocolSocketFactory`
      Parameters:
        `host` - the host name/IP
        `port` - the port on the host
        `localAddress` - the local host name/IP to bind the socket to
        `localPort` - the port on the local machine
      Returns:
        Socket a new socket
      Throws:
        `java.io.IOException` - if an I/O error occurs while creating the socket
        `java.net.UnknownHostException` - if the IP address of the host cannot be determined
      See Also:
        `createSocket(java.lang.String,int,java.net.InetAddress,int)`

    - #### createSocket

          public java.net.Socket createSocket(java.lang.String host,
                                     int port,
                                     java.net.InetAddress localAddress,
                                     int localPort,
                                     HttpConnectionParams params)
                                       throws java.io.IOException,
                                              java.net.UnknownHostException,
                                              ConnectTimeoutException

      Attempts to get a new socket connection to the given host within the given time limit.

      This method employs several techniques to circumvent the limitations of older JREs that do not support connect timeout. When running in JRE 1.4 or above reflection is used to call Socket#connect(SocketAddress endpoint, int timeout) method. When executing in older JREs a controller thread is executed. The controller thread attempts to create a new socket within the given limit of time. If socket constructor does not return until the timeout expires, the controller terminates and throws an `ConnectTimeoutException`

      Specified by:
        `createSocket` in interface `ProtocolSocketFactory`
      Parameters:
        `host` - the host name/IP
        `port` - the port on the host
        `localAddress` - the local host name/IP to bind the socket to
        `localPort` - the port on the local machine
        `params` - `Http connection parameters`
      Returns:
        Socket a new socket
      Throws:
        `java.io.IOException` - if an I/O error occurs while creating the socket
        `java.net.UnknownHostException` - if the IP address of the host cannot be determined
        `ConnectTimeoutException` - if socket cannot be connected within the given time limit
      Since:
        3.0

    - #### createSocket

          public java.net.Socket createSocket(java.lang.String host,
                                     int port)
                                       throws java.io.IOException,
                                              java.net.UnknownHostException

      Description copied from interface: `ProtocolSocketFactory`
      Gets a new socket connection to the given host.
      Specified by:
        `createSocket` in interface `ProtocolSocketFactory`
      Parameters:
        `host` - the host name/IP
        `port` - the port on the host
      Returns:
        Socket a new socket
      Throws:
        `java.io.IOException` - if an I/O error occurs while creating the socket
        `java.net.UnknownHostException` - if the IP address of the host cannot be determined
      See Also:
        `ProtocolSocketFactory.createSocket(java.lang.String,int)`

    - #### equals

          public boolean equals(java.lang.Object obj)

      All instances of DefaultProtocolSocketFactory are the same.
      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      All instances of DefaultProtocolSocketFactory have the same hash code.
      Overrides:
        `hashCode` in class `java.lang.Object`

Copyright (c) 1999-2005 - Apache Software Foundation