端口特定的RMI应用程序

时间:2013-06-30 14:02:47

标签: rmi

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

1 个答案:

答案 0 :(得分: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。 1}}。通常,您根本不需要指定自己的主机;例外情况是,如果您位于NAT设备或其他形式的端口转发防火墙后面,在这种情况下,您需要在导出任何远程对象(包括导出任何远程对象)之前在服务器JVM的java.rmi.server.hostname属性中指定主机登记处)。