# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Protected Ctors | Methods | Inherited Methods

# SocketFactory

`public abstract class SocketFactory`
`extends Object` ``

java.lang.Object
↳ | javax.net.SocketFactory

Known direct subclasses SSLSocketFactory
SSLSocketFactory | `SSLSocketFactory`s create `SSLSocket`s.

Known indirect subclasses SSLCertificateSocketFactory
SSLCertificateSocketFactory | This class is deprecated. This class has less error-prone replacements using standard APIs. To create an `SSLSocket`, obtain an `SSLSocketFactory` from `SSLSocketFactory#getDefault()` or `SSLContext.getSocketFactory()`. To verify hostnames, pass `"HTTPS"` to `SSLParameters.setEndpointIdentificationAlgorithm(String)`. To enable ALPN, use `SSLParameters.setApplicationProtocols(String[])`. To enable SNI, use `SSLParameters.setServerNames(java.util.List)`.

This class creates sockets. It may be subclassed by other factories, which create particular subclasses of sockets and thus provide a general framework for the addition of public socket-level functionality.

Socket factories are a simple way to capture a variety of policies related to the sockets being constructed, producing such sockets in a way which does not require special configuration of the code which asks for the sockets:

- Due to polymorphism of both factories and sockets, different kinds of sockets can be used by the same application code just by passing it different kinds of factories.
- Factories can themselves be customized with parameters used in socket construction. So for example, factories could be customized to return sockets with different networking timeouts or security parameters already configured.
- The sockets returned to the application can be subclasses of java.net.Socket, so that they can directly expose new APIs for features such as compression, security, record marking, statistics collection, or firewall tunneling.

Factory classes are specified by environment-specific configuration mechanisms. For example, the getDefault method could return a factory that was appropriate for a particular user or applet, and a framework could use a factory customized to its own purposes.

See also:

- `ServerSocketFactory`

## Summary

### Protected constructors
`SocketFactory()` Creates a `SocketFactory`.

### Public methods
`abstract Socket` | `createSocket(String host, int port)` Creates a socket and connects it to the specified remote host at the specified remote port.
`abstract Socket` | `createSocket(InetAddress host, int port)` Creates a socket and connects it to the specified port number at the specified address.
`abstract Socket` | `createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)` Creates a socket and connect it to the specified remote address on the specified remote port.
`abstract Socket` | `createSocket(String host, int port, InetAddress localHost, int localPort)` Creates a socket and connects it to the specified remote host on the specified remote port.
`Socket` | `createSocket()` Creates an unconnected socket.
`static SocketFactory` | `getDefault()` Returns a copy of the environment's default socket factory.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Protected constructors

### SocketFactory

    protected SocketFactory ()

Creates a `SocketFactory`.

## Public methods

### createSocket

    public abstract Socket createSocket (String host,
                    int port)

Creates a socket and connects it to the specified remote host at the specified remote port. This socket is configured using the socket options established for this factory.

If there is a security manager, its `checkConnect` method is called with the host address and `port` as its arguments. This could result in a SecurityException.

Parameters
`host` | `String`: the server host name with which to connect, or `null` for the loopback address.
`port` | `int`: the server port

Returns
`Socket` | the `Socket`

Throws
`IOException` | if an I/O error occurs when creating the socket
`SecurityException` | if a security manager exists and its `checkConnect` method doesn't allow the operation.
`UnknownHostException` | if the host is not known
`IllegalArgumentException` | if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.

See also:

- `SecurityManager.checkConnect(String, int)`
- `Socket.Socket(String, int)`

### createSocket

    public abstract Socket createSocket (InetAddress host,
                    int port)

Creates a socket and connects it to the specified port number at the specified address. This socket is configured using the socket options established for this factory.

If there is a security manager, its `checkConnect` method is called with the host address and `port` as its arguments. This could result in a SecurityException.

Parameters
`host` | `InetAddress`: the server host
`port` | `int`: the server port

Returns
`Socket` | the `Socket`

Throws
`IOException` | if an I/O error occurs when creating the socket
`SecurityException` | if a security manager exists and its `checkConnect` method doesn't allow the operation.
`IllegalArgumentException` | if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
`NullPointerException` | if `host` is null.

See also:

- `SecurityManager.checkConnect(String, int)`
- `Socket.Socket(java.net.InetAddress, int)`

### createSocket

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

Creates a socket and connect it to the specified remote address on the specified remote port. The socket will also be bound to the local address and port suplied. The socket is configured using the socket options established for this factory.

If there is a security manager, its `checkConnect` method is called with the host address and `port` as its arguments. This could result in a SecurityException.

Parameters
`address` | `InetAddress`: the server network address
`port` | `int`: the server port
`localAddress` | `InetAddress`: the client network address
`localPort` | `int`: the client port

Returns
`Socket` | the `Socket`

Throws
`IOException` | if an I/O error occurs when creating the socket
`SecurityException` | if a security manager exists and its `checkConnect` method doesn't allow the operation.
`IllegalArgumentException` | if the port parameter or localPort parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
`NullPointerException` | if `address` is null.

See also:

- `SecurityManager.checkConnect(String, int)`
- `Socket.Socket(java.net.InetAddress, int, java.net.InetAddress, int)`

### createSocket

    public abstract Socket createSocket (String host,
                    int port,
                    InetAddress localHost,
                    int localPort)

Creates a socket and connects it to the specified remote host on the specified remote port. The socket will also be bound to the local address and port supplied. This socket is configured using the socket options established for this factory.

If there is a security manager, its `checkConnect` method is called with the host address and `port` as its arguments. This could result in a SecurityException.

Parameters
`host` | `String`: the server host name with which to connect, or `null` for the loopback address.
`port` | `int`: the server port
`localHost` | `InetAddress`: the local address the socket is bound to
`localPort` | `int`: the local port the socket is bound to

Returns
`Socket` | the `Socket`

Throws
`IOException` | if an I/O error occurs when creating the socket
`SecurityException` | if a security manager exists and its `checkConnect` method doesn't allow the operation.
`UnknownHostException` | if the host is not known
`IllegalArgumentException` | if the port parameter or localPort parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.

See also:

- `SecurityManager.checkConnect(String, int)`
- `Socket.Socket(String, int, java.net.InetAddress, int)`

### createSocket

    public Socket createSocket ()

Creates an unconnected socket.

Returns
`Socket` | the unconnected socket

Throws
`IOException` | if the socket cannot be created

See also:

- `Socket.connect(java.net.SocketAddress)`
- `Socket.connect(java.net.SocketAddress, int)`
- `Socket.Socket()`

### getDefault

    public static SocketFactory getDefault ()

Returns a copy of the environment's default socket factory.

Returns
`SocketFactory` | the default `SocketFactory`

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