Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.httpclient.protocol
Class ControllerThreadSocketFactory

    java.lang.Object
      org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory

    public final class ControllerThreadSocketFactory

extends Object

This helper class is intedned to help work around the limitation of older Java versions (older than 1.4) that prevents from specifying a connection timeout when creating a socket. This factory executes a controller thread overssing the process of socket initialisation. If the socket constructor cannot be created within the specified time limit, the controller terminates and throws an `ConnectTimeoutException`

Since:
  3.0
Author:
  Ortwin Glueck, Oleg Kalnichevski

Nested Class Summary
`static class` | `ControllerThreadSocketFactory.SocketTask` Helper class for wrapping socket based tasks.

Method Summary
`static Socket` | `createSocket(ControllerThreadSocketFactory.SocketTask task, int timeout)`
`static Socket` | `createSocket(ProtocolSocketFactory socketfactory, String host, int port, InetAddress localAddress, int localPort, int timeout)` This method spawns a controller thread overseeing the process of socket initialisation.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### createSocket

    public static Socket createSocket(ProtocolSocketFactory socketfactory,
                                      String host,
                                      int port,
                                      InetAddress localAddress,
                                      int localPort,
                                      int timeout)
                               throws IOException,
                                      UnknownHostException,
                                      ConnectTimeoutException

  This method spawns a controller thread overseeing the process of socket initialisation. If the socket constructor cannot be created within the specified time limit, the controller terminates and throws an `ConnectTimeoutException`

  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
    `timeout` - the timeout value to be used in milliseconds. If the socket cannot be completed within the given time limit, it will be abandoned
  Returns:
    a connected Socket
  Throws:
    `IOException` - if an I/O error occurs while creating the socket
    `UnknownHostException` - if the IP address of the host cannot be determined
    `ConnectTimeoutException` - if socket cannot be connected within the given time limit

### createSocket

    public static Socket createSocket(ControllerThreadSocketFactory.SocketTask task,
                                      int timeout)
                               throws IOException,
                                      UnknownHostException,
                                      ConnectTimeoutException

  Throws:
    `IOException`
    `UnknownHostException`
    `ConnectTimeoutException`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2007 Apache Software Foundation. All Rights Reserved.