Class SocketFactory
java.lang.Object
javax.net.SocketFactory
- Direct Known Subclasses:
SSLSocketFactory
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 -
Method Summary
Modifier and TypeMethodDescriptionCreates an unconnected socket.abstract SocketcreateSocket(String host, int port) Creates a socket and connects it to the specified remote host at the specified remote port.abstract SocketcreateSocket(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 SocketcreateSocket(InetAddress host, int port) Creates a socket and connects it to the specified port number at the specified address.abstract SocketcreateSocket(InetAddress address, int port, InetAddress localAddress, int localPort) Creates a socket and connect it to the specified remote address on the specified remote port.static SocketFactoryReturns a copy of the environment's default socket factory.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Constructor Details
-
SocketFactory
protected SocketFactory()Creates aSocketFactory.
-
-
Method Details
-
getDefault
Returns a copy of the environment's default socket factory.- Returns:
- the default
SocketFactory
-
createSocket
Creates an unconnected socket.- Returns:
- the unconnected socket
- Throws:
IOException- if the socket cannot be created- See Also:
-
createSocket
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, ornullfor the loopback address.port- the server port- Returns:
- the
Socket - Throws:
IOException- if an I/O error occurs when creating the socketUnknownHostException- if the host is not knownIllegalArgumentException- 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, ornullfor the loopback address.port- the server portlocalHost- the local address the socket is bound tolocalPort- the local port the socket is bound to- Returns:
- the
Socket - Throws:
IOException- if an I/O error occurs when creating the socketUnknownHostException- if the host is not knownIllegalArgumentException- 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
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 hostport- the server port- Returns:
- the
Socket - Throws:
IOException- if an I/O error occurs when creating the socketIllegalArgumentException- if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.NullPointerException- ifhostis 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 addressport- the server portlocalAddress- the client network addresslocalPort- the client port- Returns:
- the
Socket - Throws:
IOException- if an I/O error occurs when creating the socketIllegalArgumentException- if the port parameter or localPort parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.NullPointerException- ifaddressis null.- See Also:
-