2013-06-30 63 views
1

问题: 如何使我的RMI应用程序成为IP和端口特定的? 这意味着我希望当我的应用程序初始化时,它会询问端口和根系统的IP地址以及应用程序可以独立执行的端口端口特定的RMI应用程序

+0

@downvoter这个问题当然不是很好表达,但它确实有意义。 – EJP

回答

1

除了要求用户提供数据的部分之外,在RMI客户端,这只是为动态而非静态地构建查询字符串Naming.lookup()的问题:例如而不是

MyRemote mr = (MyRemote)Naming.lookup("rmi://somehost:someport/MyRemote") 

构建远程对象时,你就必须

String host; // initialized by dialogue with user 
int port; // initialized by dialogue with user 
MyRemote mr = (MyRemote)Naming.lookup("rmi://"+host+":"+port+"/MyRemote") 

在RMI服务器端,提供的端口号super(),如果扩展UnicastRemoteObject,否则UnicastRemoteObject.exportObject()如果你不”延长UnicastRemoteObject。通常你根本不需要指定你自己的主机;如果您位于NAT设备或某种其他形式的端口转发防火墙之后,则会出现异常,在这种情况下,在导出任何远程对象(包括注册表)之前,您需要在服务器JVM中的java.rmi.server.hostname属性中指定主机。

+0

谢谢.... 我会试试这个,然后回复... – AkshayShrivas