public abstract class RMISocketFactory extends Object implements RMIClientSocketFactory, RMIServerSocketFactory
RMISocketFactoryinstance is used by the RMI runtime in order to obtain client and server sockets for RMI calls. An application may use the
setSocketFactorymethod to request that the RMI runtime use its socket factory instance instead of the default implementation.
The default socket factory implementation performs a
three-tiered approach to creating client sockets. First, a direct
socket connection to the remote VM is attempted. If that fails
(due to a firewall), the runtime uses HTTP with the explicit port
number of the server. If the firewall does not allow this type of
communication, then HTTP to a cgi-bin script on the server is used
to POST the RMI call. The HTTP tunneling mechanisms are disabled by
default. This behavior is controlled by the
property, whose default value is
true. Setting this property's
false will enable the HTTP tunneling mechanisms.
Deprecated: HTTP Tunneling. The HTTP tunneling mechanisms described above, specifically HTTP with an explicit port and HTTP to a cgi-bin script, are deprecated. These HTTP tunneling mechanisms are subject to removal in a future release of the platform.
The default socket factory implementation creates server sockets that are bound to the wildcard address, which accepts requests from all network interfaces.
|Constructor and Description|
|Modifier and Type||Method and Description|
Create a server socket on the specified port (port 0 indicates an anonymous port).
Creates a client socket connected to the specified host and port.
Returns a reference to the default socket factory used by this RMI implementation.
Returns the handler for socket creation failure set by the
Returns the socket factory set by the
Sets the failure handler to be called by the RMI runtime if server socket creation fails.
Set the global socket factory from which RMI gets sockets (if the remote object is not associated with a specific client and/or server socket factory).
public abstract Socket createSocket(String host, int port) throws IOException
public abstract ServerSocket createServerSocket(int port) throws IOException
public static void setSocketFactory(RMISocketFactory fac) throws IOException
public static RMISocketFactory getSocketFactory()
nullif no socket factory has been set.
public static RMISocketFactory getDefaultSocketFactory()
public static void setFailureHandler(RMIFailureHandler fh)
If there is a security manager, this method first calls
the security manager's
to ensure the operation is allowed.
This could result in a