クラスRMISocketFactory
java.lang.Object
java.rmi.server.RMISocketFactory
- すべての実装されたインタフェース:
RMIClientSocketFactory,RMIServerSocketFactory
public abstract class RMISocketFactory extends Object implements RMIClientSocketFactory, RMIServerSocketFactory
RMISocketFactoryのインスタンスは、RMI呼出しのクライアント・ソケットおよびサーバー・ソケットを取得するためにRMIランタイムが使用します。 アプリケーションは、setSocketFactoryメソッドを使って、RMIランタイムに対して、デフォルトの実装の代わりにソケット・ファクトリのインスタンスを使うように要求することができます。
デフォルトのソケット・ファクトリ実装では、リモート・ホストへの直接ソケット接続が作成されます。
デフォルトのソケット・ファクトリの実装では、ワイルドカード・アドレスにバインドされるサーバー・ソケットが作成されます。これによって、すべてのネットワーク・インタフェースからの要求が受け入れられます。
- 実装上のノート:
RMISocketFactoryクラスを使用して、特定のアドレスにバインドされるサーバー・ソケットを作成し、要求元を制限できます。 たとえば、次のコードはサーバー・ソケットをIPv4ループバック・アドレスにバインドするソケット・ファクトリを実装します。 これによって、RMIはローカル・ホストからの要求のみを処理するように制限されます。
生成されたスタブが正しいネットワーク・インタフェースに接続されていることを確認するには、class LoopbackSocketFactory extends RMISocketFactory { public ServerSocket createServerSocket(int port) throws IOException { return new ServerSocket(port, 5, InetAddress.getByName("127.0.0.1")); } public Socket createSocket(String host, int port) throws IOException { // just call the default client socket factory return RMISocketFactory.getDefaultSocketFactory() .createSocket(host, port); } } // ... RMISocketFactory.setSocketFactory(new LoopbackSocketFactory());java.rmi.server.hostnameシステム・プロパティを127.0.0.1に設定します。- 導入されたバージョン:
- 1.1
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明abstract ServerSocketcreateServerSocket(int port) 指定ポート用のサーバー・ソケットを作成します。ポート0は匿名ポートを示します。abstract SocketcreateSocket(String host, int port) 指定されたホストとポートに接続されるクライアント・ソケットを作成します。static RMISocketFactoryこのRMIの実装に使用される、デフォルトのソケット・ファクトリへの参照を返します。static RMIFailureHandlersetFailureHandlerメソッドによって設定されたソケット作成エラー・ハンドラを返します。static RMISocketFactorysetSocketFactoryメソッドによって設定されたソケット・ファクトリを返します。static voidサーバー・ソケットの作成が失敗した場合に、RMIのランタイムが呼び出すエラー・ハンドラを設定します。static voidリモート・オブジェクトが特定のクライアント・ソケット・ファクトリまたはサーバー・ソケット・ファクトリに関連付けられていない場合に、RMIがソケットを取得するグローバル・ソケット・ファクトリを設定します。
-
コンストラクタの詳細
-
RMISocketFactory
public RMISocketFactory()RMISocketFactoryを構築します。- 導入されたバージョン:
- 1.1
-
-
メソッドの詳細
-
createSocket
public abstract Socket createSocket(String host, int port) throws IOException 指定されたホストとポートに接続されるクライアント・ソケットを作成します。- 定義:
createSocket、インタフェースRMIClientSocketFactory- パラメータ:
host- ホスト名port- ポート番号- 戻り値:
- 指定されたホストとポートに接続されるソケット。
- スロー:
IOException- ソケットの作成時に入出力エラーが発生した場合- 導入されたバージョン:
- 1.1
-
createServerSocket
public abstract ServerSocket createServerSocket(int port) throws IOException 指定ポート用のサーバー・ソケットを作成します。ポート0は匿名ポートを示します。- 定義:
createServerSocket、インタフェースRMIServerSocketFactory- パラメータ:
port- ポート番号- 戻り値:
- 指定されたポートのサーバー・ソケット
- スロー:
IOException- サーバー・ソケットの作成時に入出力エラーが発生した場合- 導入されたバージョン:
- 1.1
-
setSocketFactory
public static void setSocketFactory(RMISocketFactory fac) throws IOException リモート・オブジェクトが特定のクライアント・ソケット・ファクトリまたはサーバー・ソケット・ファクトリに関連付けられていない場合に、RMIがソケットを取得するグローバル・ソケット・ファクトリを設定します。 RMIソケット・ファクトリは、1つしか設定できません。- パラメータ:
fac- ソケット・ファクトリ- スロー:
IOException- RMIソケット・ファクトリがすでに設定されている場合- 導入されたバージョン:
- 1.1
- 関連項目:
-
getSocketFactory
public static RMISocketFactory getSocketFactory()setSocketFactoryメソッドによって設定されたソケット・ファクトリを返します。 ソケット・ファクトリが設定されていない場合はnullを返します。- 戻り値:
- ソケット・ファクトリ
- 導入されたバージョン:
- 1.1
- 関連項目:
-
getDefaultSocketFactory
public static RMISocketFactory getDefaultSocketFactory()このRMIの実装に使用される、デフォルトのソケット・ファクトリへの参照を返します。 このファクトリは、getSocketFactoryからnullが返された場合に、RMIランタイムによって使用されます。- 戻り値:
- デフォルトのRMIソケット・ファクトリ
- 導入されたバージョン:
- 1.1
-
setFailureHandler
public static void setFailureHandler(RMIFailureHandler fh) サーバー・ソケットの作成が失敗した場合に、RMIのランタイムが呼び出すエラー・ハンドラを設定します。 デフォルトでは、もしエラー・ハンドラがインストールされておらず、サーバー・ソケットの作成が失敗した場合には、RMIランタイムはサーバー・ソケットの作成を再試行します。- パラメータ:
fh- エラー・ハンドラ- 導入されたバージョン:
- 1.1
- 関連項目:
-
getFailureHandler
public static RMIFailureHandler getFailureHandler()setFailureHandlerメソッドによって設定されたソケット作成エラー・ハンドラを返します。- 戻り値:
- エラー・ハンドラ
- 導入されたバージョン:
- 1.1
- 関連項目:
-