java - RMI : determine the IP address of a remote object

标签 java rmi

我有正常运行的 RMI 客户端-服务器系统。客户端知道服务器的主机信息,因此他们可以查找并进行调用。在第一次调用服务器时,客户端向服务器传递一个“他们自己”的远程引用,以便服务器可以进行回调。服务器维护所有已连接客户端的列表(当客户端关闭时,它会从服务器“注销”,并且有一个线程定期检查客户端是否可达并驱逐不可达的客户端)。

服务器上有一个图形界面(webapp 的一部分),允许用户可视化随时连接的客户端。现在要求我在此界​​面中显示客户端的 IP 地址。

我的问题:在 RMI 中,如果您有远程对象的远程引用( stub ),是否有一种简单的方法来确定该远程对象实际所在的主机(DNS 名称或 IP 地址)?

注意:当客户端第一次连接并存储信息时,我可以使用 RemoteServer.getClientHost,或者我可以在客户端上实现一个返回主机信息的远程方法,但我想知道是否有一种内置的 RMI 方法可以使用远程引用来完成此操作。

最佳答案

RMISecurityManager 和 UnicastRemoteObject 对此没有任何说明。
您可以在客户端连接时使用 RemoteServer.getClientHost
除非在远程方法调用中传递,否则我不相信可以获得这些信息。

关于java - RMI : determine the IP address of a remote object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910938/

相关文章:

java - JMX : rmiPort and registryPort the same?

security - 我需要什么来获得 SSL 套接字 (SslRMIServerSocketFactory/SslRMIClientSocketFactory)?

java - 如何在EditText中针对不同的输入长度显示不同的消息?

java - 开始使用 Oracle 数据库

tomcat - 自定义 JMXAuthenticator 和 Tomcat?

java - EJB 2.X 中 stub 和骨架的概念

java - Rmi 客户端不使用代码库

java - 移位后的位值

java - 如何使用 Java/Swing 旋转图像,然后将其原点设置为 0,0?

java - 如何在java中的for循环中创建数组