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 application, and a framework could use a factory customized to its own purposes.

Since:
1.4
See Also:
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Creates a SocketFactory.
  • Method Summary

    Modifier and Type
    Method
    Description
    Creates an unconnected socket.
    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.
    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.
    Returns a copy of the environment's default socket factory.

    Methods declared in class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Creates and returns a copy of this object.
    boolean
    Indicates whether some other object is "equal to" this one.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Finalization is deprecated and subject to removal in a future release.
    final Class<?>
    Returns the runtime class of this Object.
    int
    Returns a hash code value for this object.
    final void
    Wakes up a single thread that is waiting on this object's monitor.
    final void
    Wakes up all threads that are waiting on this object's monitor.
    Returns a string representation of the object.
    final void
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
    final void
    wait(long timeoutMillis)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
    final void
    wait(long timeoutMillis, int nanos)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  • Constructor Details

    • SocketFactory

      protected SocketFactory()
      Creates a SocketFactory.
  • Method Details

    • 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:
    • 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 name with which to connect, or null for the loopback address.
      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
      IllegalArgumentException - if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
      See Also:
    • 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 name with which to connect, or null for the loopback address.
      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
      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:
    • 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
      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:
    • 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 supplied. 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
      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: