Example usage for javax.net SocketFactory createSocket

List of usage examples for javax.net SocketFactory createSocket

Introduction

In this page you can find the example usage for javax.net SocketFactory createSocket.

Prototype

public abstract Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
        throws IOException;

Source Link

Document

Creates a socket and connect it to the specified remote address on the specified remote port.

Usage

From source file:cn.org.eshow.framwork.http.ssl.AuthSSLProtocolSocketFactory.java

/***
 * Attempts to get a new socket connection to the given host within the
 * given time limit.//  ww w .  j av  a2s. c  o m
 * <p>
 * To circumvent the limitations of older JREs that do not support connect
 * timeout 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 {@link ConnectTimeoutException}
 * </p>
 * 
 * @param host
 *            the host name/IP
 * @param port
 *            the port on the host
 * @param localAddress
 *            the local host name/IP to bind the socket to
 * @param localPort
 *            the port on the local machine
 * @param params params
 *            {@link HttpConnectionParams Http connection parameters}
 * 
 * @return Socket a new socket
 * 
 * @throws IOException
 *             if an I/O error occurs while creating the socket
 * @throws UnknownHostException
 *             if the IP address of the host cannot be determined
 */
public Socket createSocket(final String host, final int port, final InetAddress localAddress,
        final int localPort, final HttpConnectionParams params)
        throws IOException, UnknownHostException, ConnectTimeoutException {
    if (params == null) {
        throw new IllegalArgumentException("Parameters may not be null");
    }
    int timeout = AbHttpClient.DEFAULT_SOCKET_TIMEOUT;
    SocketFactory socketfactory = getSSLContext().getSocketFactory();
    if (timeout == 0) {
        return socketfactory.createSocket(host, port, localAddress, localPort);
    } else {
        Socket socket = socketfactory.createSocket();
        SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        SocketAddress remoteaddr = new InetSocketAddress(host, port);
        socket.bind(localaddr);
        socket.connect(remoteaddr, timeout);
        return socket;
    }
}

From source file:it.greenvulcano.gvesb.http.ssl.AuthSSLProtocolSocketFactory.java

/**
 * Attempts to get a new socket connection to the given host within the
 * given time limit.//from  w ww . j  a v  a 2  s .c  o m
 * <p>
 * To circumvent the limitations of older JREs that do not support connect
 * timeout 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 {@link ConnectTimeoutException}
 * </p>
 *
 * @param host
 *        the host name/IP
 * @param port
 *        the port on the host
 * @param localAddress
 *        the local host name/IP to bind the socket to
 * @param localPort
 *        the port on the local machine
 * @param params
 *        {@link HttpConnectionParams HTTP connection parameters}
 *
 * @return Socket a new socket
 *
 * @throws IOException
 *         if an I/O error occurs while creating the socket
 * @throws UnknownHostException
 *         if the IP address of the host cannot be determined
 * @throws ConnectTimeoutException
 */
public Socket createSocket(final String host, final int port, final InetAddress localAddress,
        final int localPort, final HttpConnectionParams params)
        throws IOException, UnknownHostException, ConnectTimeoutException {
    try {
        if (params == null) {
            throw new IllegalArgumentException("Parameters may not be null");
        }
        int timeout = params.getConnectionTimeout();
        SocketFactory socketfactory = getSSLContext().getSocketFactory();
        if (timeout == 0) {
            return socketfactory.createSocket(host, port, localAddress, localPort);
        }

        Socket socket = socketfactory.createSocket();
        SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        SocketAddress remoteaddr = new InetSocketAddress(host, port);
        socket.bind(localaddr);
        socket.connect(remoteaddr, timeout);
        return socket;
    } catch (UnknownHostException exc) {
        logger.error("UnknownHostException connecting to host", exc);
        throw exc;
    } catch (ConnectTimeoutException exc) {
        logger.error("ConnectTimeoutException connecting to host", exc);
        throw exc;
    } catch (IOException exc) {
        logger.error("IOException connecting to host", exc);
        throw exc;
    }
}