让我们假设路由器的公网IP是92.1.85.179结果 计算机与服务器的本地IP 192.168.0.2是点击 该路由器被设置转发到92.1.85.179:5678 192.168.0.2:5678

在我有服务器:

System.setProperty( "java.rmi.server.hostname" , "92.1.85.179" );
Registry registry = LocateRegistry.createRegistry( 5678 );
registry.rebind( "TheWebServer" , webServerInt );

在客户端有:

Registry registry = LocateRegistry.getRegistry( "92.1.85.179" , 5678 );
server = (WebServerInterface) registry.lookup( "TheWebServer" );

当客户端在网络上的本地服务器它的确定。如果客户端在本地网络它得到java.rmi.ConnectException外:连接拒绝主机:192.168.0.2;

显然,服务器给客户机的192.168.0.2的IP,因为它没有在代码,我认为System.setProperty( "java.rmi.server.hostname" , "92.1.85.179" );本来变化出现。

任何输入,将不胜感激。

有帮助吗?

解决方案

您需要导出您的远程对象在端口5678也和你导出任何远程对象之前,你需要设置java.rmi.server.hostname。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top