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がソケットを取得するグローバル・ソケット・ファクトリを設定します。
- 
コンストラクタの詳細- 
RMISocketFactorypublic RMISocketFactory()RMISocketFactoryを構築します。- 導入されたバージョン:
- 1.1
 
 
- 
- 
メソッドの詳細- 
createSocketpublic abstract Socket createSocket(String host, int port) throws IOException 指定されたホストとポートに接続されるクライアント・ソケットを作成します。- 定義:
- createSocket、インタフェース- RMIClientSocketFactory
- パラメータ:
- host- ホスト名
- port- ポート番号
- 戻り値:
- 指定されたホストとポートに接続されるソケット。
- throws:
- IOException- ソケットの作成時に入出力エラーが発生した場合
- 導入されたバージョン:
- 1.1
 
- 
createServerSocketpublic abstract ServerSocket createServerSocket(int port) throws IOException 指定ポート用のサーバー・ソケットを作成します。ポート0は匿名ポートを示します。- 定義:
- createServerSocket、インタフェース- RMIServerSocketFactory
- パラメータ:
- port- ポート番号
- 戻り値:
- 指定されたポートのサーバー・ソケット
- throws:
- IOException- サーバー・ソケットの作成時に入出力エラーが発生した場合
- 導入されたバージョン:
- 1.1
 
- 
setSocketFactorypublic static void setSocketFactory(RMISocketFactory fac) throws IOException リモート・オブジェクトが特定のクライアント・ソケット・ファクトリまたはサーバー・ソケット・ファクトリに関連付けられていない場合に、RMIがソケットを取得するグローバル・ソケット・ファクトリを設定します。 RMIソケット・ファクトリは、1つしか設定できません。 ノート: RMISocketFactoryは現在のセキュリティ・マネージャがソケット・ファクトリの設定を許可している場合にかぎり設定できるという点に注意してください。許可されていない場合には、SecurityExceptionがスローされます。- パラメータ:
- fac- ソケット・ファクトリ
- throws:
- IOException- RMIソケット・ファクトリがすでに設定されている場合
- SecurityException- セキュリティ・マネージャが存在し、その- checkSetFactoryメソッドでこの操作が許可されていない場合。
- 導入されたバージョン:
- 1.1
- 関連項目:
 
- 
getSocketFactorypublic static RMISocketFactory getSocketFactory()setSocketFactoryメソッドによって設定されたソケット・ファクトリを返します。 ソケット・ファクトリが設定されていない場合はnullを返します。- 戻り値:
- ソケット・ファクトリ
- 導入されたバージョン:
- 1.1
- 関連項目:
 
- 
getDefaultSocketFactorypublic static RMISocketFactory getDefaultSocketFactory()このRMIの実装に使用される、デフォルトのソケット・ファクトリへの参照を返します。 このファクトリは、getSocketFactoryからnullが返された場合に、RMIランタイムによって使用されます。- 戻り値:
- デフォルトのRMIソケット・ファクトリ
- 導入されたバージョン:
- 1.1
 
- 
setFailureHandlerpublic static void setFailureHandler(RMIFailureHandler fh) サーバー・ソケットの作成が失敗した場合に、RMIのランタイムが呼び出すエラー・ハンドラを設定します。 デフォルトでは、もしエラー・ハンドラがインストールされておらず、サーバー・ソケットの作成が失敗した場合には、RMIランタイムはサーバー・ソケットの作成を再試行します。セキュリティ・マネージャが存在する場合、この操作が許可されるように、このメソッドは最初にセキュリティ・マネージャの checkSetFactoryメソッドを呼び出します。 この結果、SecurityExceptionになることがあります。- パラメータ:
- fh- エラー・ハンドラ
- throws:
- SecurityException- セキュリティ・マネージャが存在し、その- checkSetFactoryメソッドでこの操作が許可されていない場合。
- 導入されたバージョン:
- 1.1
- 関連項目:
 
- 
getFailureHandlerpublic static RMIFailureHandler getFailureHandler()setFailureHandlerメソッドによって設定されたソケット作成エラー・ハンドラを返します。- 戻り値:
- エラー・ハンドラ
- 導入されたバージョン:
- 1.1
- 関連項目:
 
 
-