私は機能するRMIクライアント - サーバシステムを持っています。サーバーのホスト情報はクライアントに知られているため、クライアントは検索して呼び出しを行うことができます。サーバーへの最初の呼び出しで、クライアントはサーバーにコールバックを行うことができるように、サーバーに「自分自身」のリモート参照を渡します。サーバーは、接続されているすべてのクライアントのリストを保持します(クライアントがサーバーから「登録を解除」し、クライアントが到達可能かどうかを定期的にチェックし、そうでないクライアントを削除するスレッドがあります)。RMI:リモートオブジェクトのIPアドレスを決定する
サーバーにはグラフィカルインターフェイス(Webアプリケーションの一部)があり、ユーザーはいつでも接続されているクライアントを視覚化できます。今、このインターフェースにクライアントのIPアドレスを表示するように求められます。
私の質問:リモートオブジェクト(スタブ)のリモート参照がある場合、このリモートオブジェクトが実際に存在するホスト(DNS名またはIPアドレス)を簡単に判別できますか?
注:クライアントが初めて情報を接続して保存するときにRemoteServer.getClientHost
を使用するか、ホスト情報を返すクライアントでリモートメソッドを実装することができますが、組み込みのRMI方法があるかどうかを知りたいリモート参照でそれを行うこと。
あなたの質問は不明です。 RemoteServer.getClientHost()は、リモートオブジェクトのアドレスではなく、クライアントのアドレスを返します。とにかくリモートオブジェクトのアドレスは何を使用していますか? RMIでそれを行うことはできません。 – EJP
はい、この場合、リモートオブジェクトのアドレスが必要でした。 RMI呼び出しやそのようなものではなく、GUIに表示するだけです... –