Class ControllerThreadSocketFactory
java.lang.Object
org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory
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
Nested ClassesModifier and TypeClassDescriptionstatic classHelper class for wrapping socket based tasks. -
Method Summary
Modifier and TypeMethodDescriptionstatic SocketcreateSocket(ControllerThreadSocketFactory.SocketTask task, int timeout) static SocketcreateSocket(ProtocolSocketFactory socketfactory, String host, int port, InetAddress localAddress, int localPort, int timeout) This method spawns a controller thread overseeing the process of socket initialisation.
-
Method Details
-
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 anConnectTimeoutException- Parameters:
host- the host name/IPport- the port on the hostlocalAddress- the local host name/IP to bind the socket tolocalPort- the port on the local machinetimeout- 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 socketUnknownHostException- if the IP address of the host cannot be determinedConnectTimeoutException- if socket cannot be connected within the given time limit
-
createSocket
public static Socket createSocket(ControllerThreadSocketFactory.SocketTask task, int timeout) throws IOException, UnknownHostException, ConnectTimeoutException
-