SocketFactory (Java SE 15 & JDK 15) (original) (raw)
Direct Known Subclasses:
[SSLSocketFactory](ssl/SSLSocketFactory.html "class in javax.net.ssl")
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:
Constructor Summary
Constructors
Modifier | Constructor | Description |
---|---|---|
protected | SocketFactory() | Creates a SocketFactory. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
Socket | createSocket() | 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. |
static SocketFactory | getDefault() | Returns a copy of the environment's default socket factory. |
Methods declared in class java.lang.Object
[clone](../../java/lang/Object.html#clone%28%29), [equals](../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../java/lang/Object.html#finalize%28%29), [getClass](../../java/lang/Object.html#getClass%28%29), [hashCode](../../java/lang/Object.html#hashCode%28%29), [notify](../../java/lang/Object.html#notify%28%29), [notifyAll](../../java/lang/Object.html#notifyAll%28%29), [toString](../../java/lang/Object.html#toString%28%29), [wait](../../java/lang/Object.html#wait%28%29), [wait](../../java/lang/Object.html#wait%28long%29), [wait](../../java/lang/Object.html#wait%28long,int%29)
Constructor Details
SocketFactory
protected SocketFactory()
Creates aSocketFactory
.Method Details
getDefault
Returns a copy of the environment's default socket factory.
Returns:
the defaultSocketFactory
createSocket
Creates an unconnected socket.
Returns:
the unconnected socket
Throws:
[IOException](../../java/io/IOException.html "class in java.io")
- if the socket cannot be created
See Also:
Socket.connect(java.net.SocketAddress), Socket.connect(java.net.SocketAddress, int), Socket()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.
If there is a security manager, itscheckConnect
method is called with the host address andport
as its arguments. This could result in a SecurityException.
Parameters:
host
- the server host name with which to connect, ornull
for the loopback address.
port
- the server port
Returns:
theSocket
Throws:
[IOException](../../java/io/IOException.html "class in java.io")
- if an I/O error occurs when creating the socket
[SecurityException](../../java/lang/SecurityException.html "class in java.lang")
- if a security manager exists and itscheckConnect
method doesn't allow the operation.
[UnknownHostException](../../java/net/UnknownHostException.html "class in java.net")
- if the host is not known
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
See Also:
SecurityManager.checkConnect(java.lang.String, int), Socket(String, int)createSocket
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, itscheckConnect
method is called with the host address andport
as its arguments. This could result in a SecurityException.
Parameters:
host
- the server host name with which to connect, ornull
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:
theSocket
Throws:
[IOException](../../java/io/IOException.html "class in java.io")
- if an I/O error occurs when creating the socket
[SecurityException](../../java/lang/SecurityException.html "class in java.lang")
- if a security manager exists and itscheckConnect
method doesn't allow the operation.
[UnknownHostException](../../java/net/UnknownHostException.html "class in java.net")
- if the host is not known
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- 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(java.lang.String, int), Socket(String, int, java.net.InetAddress, int)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.
If there is a security manager, itscheckConnect
method is called with the host address andport
as its arguments. This could result in a SecurityException.
Parameters:
host
- the server host
port
- the server port
Returns:
theSocket
Throws:
[IOException](../../java/io/IOException.html "class in java.io")
- if an I/O error occurs when creating the socket
[SecurityException](../../java/lang/SecurityException.html "class in java.lang")
- if a security manager exists and itscheckConnect
method doesn't allow the operation.
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the port parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- ifhost
is null.
See Also:
SecurityManager.checkConnect(java.lang.String, int), Socket(java.net.InetAddress, int)createSocket
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, itscheckConnect
method is called with the host address andport
as its arguments. This could result in a SecurityException.
Parameters:
address
- the server network address
port
- the server port
localAddress
- the client network address
localPort
- the client port
Returns:
theSocket
Throws:
[IOException](../../java/io/IOException.html "class in java.io")
- if an I/O error occurs when creating the socket
[SecurityException](../../java/lang/SecurityException.html "class in java.lang")
- if a security manager exists and itscheckConnect
method doesn't allow the operation.
[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")
- if the port parameter or localPort parameter is outside the specified range of valid port values, which is between 0 and 65535, inclusive.
[NullPointerException](../../java/lang/NullPointerException.html "class in java.lang")
- ifaddress
is null.
See Also:
SecurityManager.checkConnect(java.lang.String, int), Socket(java.net.InetAddress, int, java.net.InetAddress, int)