0

Java RMI を使用しています。クライアントとサーバーはまだ同じマシン上にあります。サーバーでレジストリを開始するために、現在使用しています

int serverPort = 8081;          
Registry registry = LocateRegistry.createRegistry(serverPort); 

したがって、レジストリはマシンの IP と指定されたポートで開始されます。クライアントはこのコードでレジストリを取得します

Registry registry = LocateRegistry.getRegistry(127.0.0.1, 8081);

127.0.0.2、127.0.0.3 .. 127.255.255.254 のような他のループバック アドレスのいずれかを使用する場合も同様です。レジストリを作成するときに、1 つのループバック アドレス (たとえば、127.0.0.1 のみ) の IP を指定できる可能性はありますか? 次のような方法はありません。

LocateRegistry.createRegistry(ip, port); 
4

1 に答える 1

0

したがって、レジストリはマシンの IP と指定されたポートで開始されます。

いいえ、そうではありません。0.0.0.0 と指定したポートをリッスンするように作成されます。

リッスン ソケットが特定の IP アドレスでリッスンするようにするには、RMIServerSocketFactoryそれを作成する を指定する必要がありServerSocketsます。

于 2016-12-21T10:49:53.020 に答える