gpt4 book ai didi

与家庭网络本地主机的 Java RMI 连接找不到正确的远程模块

转载 作者:行者123 更新时间:2023-11-30 09:40:41 26 4
gpt4 key购买 nike

我一直致力于这个项目,其中不同机器上的两个模块需要通过 RMI 进行通信。

我在笔记本电脑上同时启动客户端和服务器模块。当我在工作并连接到工作网络时,RMI 似乎可以正常工作,但是当我在家时,连接到我的家庭网络时它不起作用。它说找不到远程对象。

这是我在客户端使用的方法来获取对远程对象的引用

public static MyRMIApp getRemoteApp() throws RemoteException, NotBoundException, AccessException {
Registry registry = LocateRegistry.getRegistry("localhost", 28999); // tried 127.0.0.1 instead of localhost here, still not working
MyRMIApp app = (MyRMIApp) registry.lookup("COM");
return app;
}

通过一些调试深入挖掘,当我检查从 getRemoteApp 方法返回的对象值时,它显示终点是 67.215.65.132。这是我用来连接到互联网的 openDNS。那不应该是 127.0.0.1 吗?

然后我使用移动互联网再次尝试。它似乎在工作,但端点不是 127.0.0.1,它是分配给我的地址,即 192.168.x.x

所以有人可以告诉我我在这里做错了什么吗?我真的很感激你的帮助。

哦,这是SERVER端的一段代码

//Somwhere up top
private final static MyRMIApp rmiApp = new RMIServer();

//Down below
MyRMIApp stub = (MyRMIApp) UnicastRemoteObject.exportObject(rmiApp, 0);
Registry registry = LocateRegistry.createRegistry(28999);
registry.rebind("COM", stub);

最佳答案

请参阅 RMI FAQ 的 A.1 项: 具体来说,“适当的解决方法是在启动服务器时设置系统属性 java.rmi.server.hostname。”

关于与家庭网络本地主机的 Java RMI 连接找不到正确的远程模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com