Example usage for java.net Socket getSoTimeout

List of usage examples for java.net Socket getSoTimeout

Introduction

In this page you can find the example usage for java.net Socket getSoTimeout.

Prototype

public synchronized int getSoTimeout() throws SocketException 

Source Link

Document

Returns setting for SocketOptions#SO_TIMEOUT SO_TIMEOUT .

Usage

From source file:Main.java

public static void main(String[] args) throws Exception {
    Socket client = new Socket("google.com", 80);
    client.setSoTimeout(1000);//www. j  a  v  a  2s.  c o  m
    System.out.println(client.getSoTimeout());

    client.close();
}

From source file:eu.stratosphere.nephele.net.NetUtils.java

/**
 * Same as getInputStream(socket, socket.getSoTimeout()).<br>
 * <br>/*from w ww  .  j av a 2s . co m*/
 * From documentation for {@link #getInputStream(Socket, long)}:<br>
 * Returns InputStream for the socket. If the socket has an associated
 * SocketChannel then it returns a {@link SocketInputStream} with the given timeout. If the socket does not
 * have a channel, {@link Socket#getInputStream()} is returned. In the later
 * case, the timeout argument is ignored and the timeout set with {@link Socket#setSoTimeout(int)} applies for
 * reads.<br>
 * <br>
 * Any socket created using socket factories returned by {@link #NetUtils},
 * must use this interface instead of {@link Socket#getInputStream()}.
 * 
 * @see #getInputStream(Socket, long)
 * @param socket
 * @return InputStream for reading from the socket.
 * @throws IOException
 */
public static InputStream getInputStream(Socket socket) throws IOException {
    return getInputStream(socket, socket.getSoTimeout());
}

From source file:org.dcache.srm.client.FlexibleCredentialSSLConnectionSocketFactory.java

@Override
public Socket connectSocket(final int connectTimeout, final Socket socket, final HttpHost host,
        final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpContext context)
        throws IOException {
    Args.notNull(host, "HTTP host");
    Args.notNull(remoteAddress, "Remote address");
    final Socket sock = socket != null ? socket : createSocket(context);
    if (localAddress != null) {
        sock.bind(localAddress);/*from w w w .  j  a v  a 2  s . c o  m*/
    }
    try {
        if (connectTimeout > 0 && sock.getSoTimeout() == 0) {
            sock.setSoTimeout(connectTimeout);
        }
        LOGGER.debug("Connecting socket to {} with timeout {}", remoteAddress, connectTimeout);
        sock.connect(remoteAddress, connectTimeout);
    } catch (final IOException ex) {
        try {
            sock.close();
        } catch (final IOException ignore) {
        }
        throw ex;
    }
    // Setup SSL layering if necessary
    if (sock instanceof SSLSocket) {
        final SSLSocket sslsock = (SSLSocket) sock;
        LOGGER.debug("Starting handshake");
        sslsock.startHandshake();
        verifyHostname(sslsock, host.getHostName());
        return sock;
    } else {
        return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
    }
}

From source file:com.serphacker.serposcope.scraper.http.extensions.ScrapClientSSLConnectionFactory.java

@Override
public Socket connectSocket(final int connectTimeout, final Socket socket, final HttpHost host,
        final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpContext context)
        throws IOException {
    Args.notNull(host, "HTTP host");
    Args.notNull(remoteAddress, "Remote address");
    final Socket sock = socket != null ? socket : createSocket(context);
    if (localAddress != null) {
        sock.bind(localAddress);/*from   w  w  w.  ja v a2  s  . co m*/
    }
    try {
        if (connectTimeout > 0 && sock.getSoTimeout() == 0) {
            sock.setSoTimeout(connectTimeout);
        }
        if (this.log.isDebugEnabled()) {
            this.log.debug("Connecting socket to " + remoteAddress + " with timeout " + connectTimeout);
        }
        sock.connect(remoteAddress, connectTimeout);
    } catch (final IOException ex) {
        try {
            sock.close();
        } catch (final IOException ignore) {
        }
        throw ex;
    }
    // Setup SSL layering if necessary
    if (sock instanceof SSLSocket) {
        final SSLSocket sslsock = (SSLSocket) sock;
        this.log.debug("Starting handshake");
        sslsock.startHandshake();
        verifyHostname(sslsock, host.getHostName());
        return sock;
    } else {
        return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
    }
}

From source file:com.googlecode.jcimd.TcpNetConnection.java

public TcpNetConnection(Socket socket, PacketSerializer serializer, String username, String password)
        throws Exception {
    if (socket == null) {
        throw new IllegalArgumentException("socket cannot be null");
    }//from w w w.  j av a2 s.c o  m
    if (serializer == null) {
        throw new IllegalArgumentException("serializer cannot be null");
    }
    this.socket = socket;
    int timeout = socket.getSoTimeout();
    if (timeout > 0) {
        this.replyTimeout = timeout;
    }
    this.serializer = serializer;
    this.username = username;
    this.password = password;
}

From source file:net.lightbody.bmp.proxy.jetty.http.handler.ProxyHandler.java

public void handleConnect(String pathInContext, String pathParams, HttpRequest request, HttpResponse response)
        throws HttpException, IOException {
    URI uri = request.getURI();/*from  w  w w  .  j a v  a2  s .c om*/

    try {
        if (log.isDebugEnabled())
            log.debug("CONNECT: " + uri);
        InetAddrPort addrPort = new InetAddrPort(uri.toString());

        if (isForbidden(HttpMessage.__SSL_SCHEME, addrPort.getHost(), addrPort.getPort(), false)) {
            sendForbid(request, response, uri);
        } else {
            HttpConnection http_connection = request.getHttpConnection();
            http_connection.forceClose();

            // Get the timeout
            int timeoutMs = 30000;
            Object maybesocket = http_connection.getConnection();
            if (maybesocket instanceof Socket) {
                Socket s = (Socket) maybesocket;
                timeoutMs = s.getSoTimeout();
            }

            // Create the tunnel
            HttpTunnel tunnel = newHttpTunnel(request, response, addrPort.getInetAddress(), addrPort.getPort(),
                    timeoutMs);

            if (tunnel != null) {
                // TODO - need to setup semi-busy loop for IE.
                if (_tunnelTimeoutMs > 0) {
                    tunnel.getSocket().setSoTimeout(_tunnelTimeoutMs);
                    if (maybesocket instanceof Socket) {
                        Socket s = (Socket) maybesocket;
                        s.setSoTimeout(_tunnelTimeoutMs);
                    }
                }
                tunnel.setTimeoutMs(timeoutMs);

                customizeConnection(pathInContext, pathParams, request, tunnel.getSocket());
                request.getHttpConnection().setHttpTunnel(tunnel);
                response.setStatus(HttpResponse.__200_OK);
                response.setContentLength(0);
            }
            request.setHandled(true);
        }
    } catch (Exception e) {
        LogSupport.ignore(log, e);
        response.sendError(HttpResponse.__500_Internal_Server_Error);
    }
}

From source file:info.guardianproject.netcipher.client.SSLConnectionSocketFactory.java

@Override
public Socket connectSocket(final int connectTimeout, final Socket socket, final HttpHost host,
        final InetSocketAddress remoteAddress, final InetSocketAddress localAddress, final HttpContext context)
        throws IOException {
    Args.notNull(host, "HTTP host");
    Args.notNull(remoteAddress, "Remote address");
    final Socket sock = socket != null ? socket : createSocket(context);
    if (localAddress != null) {
        sock.bind(localAddress);//  ww w  .j  a v  a  2  s  . c  o m
    }
    try {
        if (connectTimeout > 0 && sock.getSoTimeout() == 0) {
            sock.setSoTimeout(connectTimeout);
        }
        /*
              if (this.log.isDebugEnabled()) {
                this.log.debug("Connecting socket to " + remoteAddress + " with timeout " + connectTimeout);
              }
        */
        sock.connect(remoteAddress, connectTimeout);
    } catch (final IOException ex) {
        try {
            sock.close();
        } catch (final IOException ignore) {
        }
        throw ex;
    }
    // Setup SSL layering if necessary
    if (sock instanceof SSLSocket) {
        final SSLSocket sslsock = (SSLSocket) sock;
        //      this.log.debug("Starting handshake");
        sslsock.startHandshake();
        verifyHostname(sslsock, host.getHostName());
        return sock;
    } else {
        return createLayeredSocket(sock, host.getHostName(), remoteAddress.getPort(), context);
    }
}

From source file:com.googlecode.xremoting.core.commonshttpclient.ssl.AuthSSLProtocolSocketFactory.java

/**
 * Attempts to get a new socket connection to the given host within the given time limit.
 * <p>/*from   w  w w. j  av  a2  s.  c  om*/
 * 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
 */
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 = params.getConnectionTimeout();
    SocketFactory socketfactory = getSSLContext().getSocketFactory();
    if (timeout == 0) {
        Socket socket = socketfactory.createSocket(host, port, localAddress, localPort);
        doPreConnectSocketStuff(socket);
        return socket;
    } else {
        Socket socket = socketfactory.createSocket();
        doPreConnectSocketStuff(socket);
        SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
        SocketAddress remoteaddr = new InetSocketAddress(host, port);

        if (timeout > 0 && socket.getSoTimeout() == 0) {
            // force SO timeout if not set so we don't freeze forever
            // during a handshake
            socket.setSoTimeout(timeout);
        }

        socket.bind(localaddr);
        socket.connect(remoteaddr, timeout);
        return socket;
    }
}

From source file:com.groupon.odo.bmp.BrowserMobProxyHandler.java

/**
 * Copied from original SeleniumProxyHandler
 * Changed SslRelay to SslListener and getSslRelayOrCreateNew to getSslRelayOrCreateNewOdo
 * No other changes to the function/*w ww .j  a  v a  2 s  .  co  m*/
 *
 * @param pathInContext
 * @param pathParams
 * @param request
 * @param response
 * @throws HttpException
 * @throws IOException
 */
public void handleConnectOriginal(String pathInContext, String pathParams, HttpRequest request,
        HttpResponse response) throws HttpException, IOException {
    URI uri = request.getURI();

    try {
        LOG.fine("CONNECT: " + uri);
        InetAddrPort addrPort;
        // When logging, we'll attempt to send messages to hosts that don't exist
        if (uri.toString().endsWith(".selenium.doesnotexist:443")) {
            // so we have to do set the host to be localhost (you can't new up an IAP with a non-existent hostname)
            addrPort = new InetAddrPort(443);
        } else {
            addrPort = new InetAddrPort(uri.toString());
        }

        if (isForbidden(HttpMessage.__SSL_SCHEME, addrPort.getHost(), addrPort.getPort(), false)) {
            sendForbid(request, response, uri);
        } else {
            HttpConnection http_connection = request.getHttpConnection();
            http_connection.forceClose();

            HttpServer server = http_connection.getHttpServer();

            SslListener listener = getSslRelayOrCreateNewOdo(uri, addrPort, server);

            int port = listener.getPort();

            // Get the timeout
            int timeoutMs = 30000;
            Object maybesocket = http_connection.getConnection();
            if (maybesocket instanceof Socket) {
                Socket s = (Socket) maybesocket;
                timeoutMs = s.getSoTimeout();
            }

            // Create the tunnel
            HttpTunnel tunnel = newHttpTunnel(request, response, InetAddress.getByName(null), port, timeoutMs);

            if (tunnel != null) {
                // TODO - need to setup semi-busy loop for IE.
                if (_tunnelTimeoutMs > 0) {
                    tunnel.getSocket().setSoTimeout(_tunnelTimeoutMs);
                    if (maybesocket instanceof Socket) {
                        Socket s = (Socket) maybesocket;
                        s.setSoTimeout(_tunnelTimeoutMs);
                    }
                }
                tunnel.setTimeoutMs(timeoutMs);

                customizeConnection(pathInContext, pathParams, request, tunnel.getSocket());
                request.getHttpConnection().setHttpTunnel(tunnel);
                response.setStatus(HttpResponse.__200_OK);
                response.setContentLength(0);
            }
            request.setHandled(true);
        }
    } catch (Exception e) {
        LOG.fine("error during handleConnect", e);
        response.sendError(HttpResponse.__500_Internal_Server_Error, e.toString());
    }
}

From source file:org.apache.geode.internal.cache.tier.sockets.HandShake.java

/**
 * HandShake Constructor used by server side connection
 *//*  w ww. j  ava  2 s.c  o m*/
public HandShake(Socket sock, int timeout, DistributedSystem sys, Version clientVersion,
        CommunicationMode communicationMode, SecurityService securityService)
        throws IOException, AuthenticationRequiredException {

    this.clientVersion = clientVersion;
    this.system = sys;
    this.securityService = securityService;

    {
        int soTimeout = -1;
        try {
            soTimeout = sock.getSoTimeout();
            sock.setSoTimeout(timeout);
            InputStream is = sock.getInputStream();
            int valRead = is.read();
            // this.code = (byte)is.read();
            if (valRead == -1) {
                throw new EOFException(
                        LocalizedStrings.HandShake_HANDSHAKE_EOF_REACHED_BEFORE_CLIENT_CODE_COULD_BE_READ
                                .toLocalizedString());
            }
            this.code = (byte) valRead;
            if (this.code != REPLY_OK) {
                throw new IOException(
                        LocalizedStrings.HandShake_HANDSHAKE_REPLY_CODE_IS_NOT_OK.toLocalizedString());
            }
            try {
                DataInputStream dis = new DataInputStream(is);
                DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
                this.clientReadTimeout = dis.readInt();
                if (clientVersion.compareTo(Version.CURRENT) < 0) {
                    // versioned streams allow object serialization code to deal with older clients
                    dis = new VersionedDataInputStream(dis, clientVersion);
                    dos = new VersionedDataOutputStream(dos, clientVersion);
                }
                this.id = ClientProxyMembershipID.readCanonicalized(dis);
                // Note: credentials should always be the last piece in handshake for
                // Diffie-Hellman key exchange to work
                if (clientVersion.compareTo(Version.GFE_603) >= 0) {
                    setOverrides(new byte[] { dis.readByte() });
                } else {
                    setClientConflation(dis.readByte());
                }
                // Hitesh
                if (this.clientVersion.compareTo(Version.GFE_65) < 0 || communicationMode.isWAN()) {
                    this.credentials = readCredentials(dis, dos, sys, this.securityService);
                } else {
                    this.credentials = this.readCredential(dis, dos, sys);
                }
            } catch (IOException ioe) {
                this.code = -2;
                throw ioe;
            } catch (ClassNotFoundException cnfe) {
                this.code = -3;
                throw new IOException(
                        LocalizedStrings.HandShake_CLIENTPROXYMEMBERSHIPID_CLASS_COULD_NOT_BE_FOUND_WHILE_DESERIALIZING_THE_OBJECT
                                .toLocalizedString());
            }
        } finally {
            if (soTimeout != -1) {
                try {
                    sock.setSoTimeout(soTimeout);
                } catch (IOException ignore) {
                }
            }
        }
    }
}