2011-06-29 83 views
0

只要我在本地主机上运行多个客户端,一切正常。当我在其他主机上启动客户端时出现问题。在Java远程客户端上进行远程查询RMI

例如,在执行期间的某个时间点,服务器上的方法以localhost作为目的地来调用,这意味着服务器突然忘记了远程客户端的IP地址。这怎么可能?

此外,由服务器执行的远程查找需要永久完成。它可能是我的路由器拒绝访问它吗?或者服务器拼命尝试使用不同的路径到达远程主机?

+0

你是什么意思的服务器忘记客户的IP?让客户端开始与服务器通信,服务器应创建一个列表或将这些IP数据保存在某个地方并用于进一步的通信。 – doNotCheckMyBlog

+1

您如何从客户端进行查找?你如何在服务器端创建注册表?从您的应用程序或您之前开始?以及如何在注册表中绑定对象?一些代码或堆栈跟踪会很好。就查找时间而言,afaik在windows和unix操作系统上有所不同。在Unix上它需要更长的时间。您可以通过扩展RMISocketFactory类来更改该值。有一些教程如何做到这一点 – peshkira

回答

1

服务器不需要执行远程查找。客户做到这一点。

如果您的客户抛出ConnectExceptions表示他们尝试连接到'localhost',如果他们不应该,请参阅RMI FAQ的项目A.1。