# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Methods

# SocketFactory

`public interface SocketFactory`
``

org.apache.http.conn.scheme.SocketFactory

Known indirect subclasses LayeredSocketFactory, SSLSocketFactory
LayeredSocketFactory | This interface is deprecated. Please use `URL.openConnection()` instead. Please visit this webpage for further details.
SSLSocketFactory | This class is deprecated. Please use `URL.openConnection()` instead. Please visit this webpage for further details.

This interface is deprecated.
Please use `URL.openConnection()` instead. Please visit this webpage for further details.

A factory for creating and connecting sockets. The factory encapsulates the logic for establishing a socket connection.
Both `Object.equals()` and `Object.hashCode()` must be overridden for the correct operation of some connection managers.

## Summary

### Public methods
`abstract Socket` | `connectSocket(Socket sock, String host, int port, InetAddress localAddress, int localPort, HttpParams params)` Connects a socket to the given host.
`abstract Socket` | `createSocket()` Creates a new, unconnected socket.
`abstract boolean` | `isSecure(Socket sock)` Checks whether a socket provides a secure connection.

## Public methods

### connectSocket

    public abstract Socket connectSocket (Socket sock,
                    String host,
                    int port,
                    InetAddress localAddress,
                    int localPort,
                    HttpParams params)

Connects a socket to the given host.

Parameters
`sock` | `Socket`: the socket to connect, as obtained from `createSocket`. `null` indicates that a new socket should be created and connected.
`host` | `String`: the host to connect to
`port` | `int`: the port to connect to on the host
`localAddress` | `InetAddress`: the local address to bind the socket to, or `null` for any
`localPort` | `int`: the port on the local machine, 0 or a negative number for any
`params` | `HttpParams`: additional `parameters` for connecting

Returns
`Socket` | the connected socket. The returned object may be different from the `sock` argument if this factory supports a layered protocol.

Throws
`IOException` | if an I/O error occurs
`UnknownHostException` | if the IP address of the target host can not be determined
`ConnectTimeoutException` | if the socket cannot be connected within the time limit defined in the `params`

### createSocket

    public abstract Socket createSocket ()

Creates a new, unconnected socket. The socket should subsequently be passed to `connectSocket`.

Returns
`Socket` | a new socket

Throws
`IOException` | if an I/O error occurs while creating the socket

### isSecure

    public abstract boolean isSecure (Socket sock)

Checks whether a socket provides a secure connection. The socket must be `connected` by this factory. The factory will not perform I/O operations in this method.
As a rule of thumb, plain sockets are not secure and TLS/SSL sockets are secure. However, there may be application specific deviations. For example, a plain socket to a host in the same intranet ("trusted zone") could be considered secure. On the other hand, a TLS/SSL socket could be considered insecure based on the cypher suite chosen for the connection.

Parameters
`sock` | `Socket`: the connected socket to check

Returns
`boolean` | `true` if the connection of the socket should be considered secure, or `false` if it should not

Throws
`IllegalArgumentException` | if the argument is invalid, for example because it is not a connected socket or was created by a different socket factory. Note that socket factories are not required to check these conditions, they may simply return a default value when called with an invalid socket argument.

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*