【发布时间】:2010-11-21 00:02:59
【问题描述】:
假设路由器的公共 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: Connection denied to host: 192.168.0.2;
很明显,服务器给客户端的 IP 是 192.168.0.2,因为它没有出现在代码中,我认为 System.setProperty( "java.rmi.server.hostname" , "92.1.85.179" ); 应该改变。
任何意见将不胜感激。
【问题讨论】: