0

ルーターのパブリック IP が 92.1.85.179
であるとします。サーバーを搭載したコンピューターのローカル IP は 192.168.0.2 です
。ルーターは 92.1.85.179:5678 を 192.168.0.2:5678 に転送するように設定されています。

私が持っているサーバーでは:

System.setProperty( "java.rmi.server.hostname" , "92.1.85.179" );
Registry registry = LocateRegistry.createRegistry( 5678 );
registry.rebind( "TheWebServer" , webServerInt );

クライアントには次のものがあります。

Registry registry = LocateRegistry.getRegistry( "92.1.85.179" , 5678 );
server = (WebServerInterface) registry.lookup( "TheWebServer" );

クライアントがサーバーに対してローカルなネットワーク上にある場合は問題ありません。クライアントがローカル ネットワークの外部にある場合、java.rmi.ConnectException: 接続がホストに拒否されました: 192.168.0.2; が発生します。

明らかに、サーバーがクライアントに 192.168.0.2 の IP を与えているのは、コードに表示されていないSystem.setProperty( "java.rmi.server.hostname" , "92.1.85.179" );ためです。

任意の入力をいただければ幸いです。

4

1 に答える 1

1

ポート5678でもリモートオブジェクトをエクスポートする必要があります。また、リモートオブジェクトをエクスポートする前に、java.rmi.server.hostnameを設定する必要があります。

于 2010-11-21T00:37:00.733 に答える