Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.net
Class SocketFactory

    java.lang.Object
      javax.net.SocketFactory

Direct Known Subclasses:
  SSLSocketFactory

    public abstract class SocketFactory

extends Object

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.

Since:
  1.4
See Also:
  `ServerSocketFactory`

Constructor Summary
`protected` | `SocketFactory()` Creates a `SocketFactory`.

Method Summary
`Socket` | `createSocket()` Creates an unconnected socket.
`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)` Creates a socket and connects it to the specified remote host at 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.
`static SocketFactory` | `getDefault()` Returns a copy of the environment's default socket factory.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SocketFactory

    protected SocketFactory()

  Creates a `SocketFactory`.

Method Detail

### getDefault

    public static SocketFactory getDefault()

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

  Returns:
    the default `SocketFactory`

### createSocket

    public Socket createSocket()
                        throws IOException

  Creates an unconnected socket.

  Returns:
    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()`

### createSocket

    public abstract Socket createSocket(String host,
                                        int port)
                                 throws IOException,
                                        UnknownHostException

  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.

  Parameters:
    `host` - the server host
    `port` - the server port
  Returns:
    the `Socket`
  Throws:
    `IOException` - if an I/O error occurs when creating the socket
    `UnknownHostException` - if the host is not known
  See Also:
    `Socket.Socket(String, int)`

### createSocket

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

  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.

  Parameters:
    `host` - the server host
    `port` - the server port
    `localHost` - the local address the socket is bound to
    `localPort` - the local port the socket is bound to
  Returns:
    the `Socket`
  Throws:
    `IOException` - if an I/O error occurs when creating the socket
    `UnknownHostException` - if the host is not known
  See Also:
    `Socket.Socket(String, int, java.net.InetAddress, int)`

### createSocket

    public abstract Socket createSocket(InetAddress host,
                                        int port)
                                 throws IOException

  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.

  Parameters:
    `host` - the server host
    `port` - the server port
  Returns:
    the `Socket`
  Throws:
    `IOException` - if an I/O error occurs when creating the socket
  See Also:
    `Socket.Socket(java.net.InetAddress, int)`

### createSocket

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

  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.

  Parameters:
    `address` - the server network address
    `port` - the server port
    `localAddress` - the client network address
    `localPort` - the client port
  Returns:
    the `Socket`
  Throws:
    `IOException` - if an I/O error occurs when creating the socket
  See Also:
    `Socket.Socket(java.net.InetAddress, int, java.net.InetAddress, int)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Java™ Platform Standard Ed. 6
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.