问题:如何使我的 RMI 应用程序具有特定的 IP 和端口?这意味着我希望当我的应用程序初始化时它会询问端口和根系统 IP 地址以及应用程序可以独立执行的端口
问问题
82 次
1 回答
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 设备或其他形式的端口转发防火墙后面,在这种情况下,您需要在java.rmi.server.hostname
导出任何远程对象(包括注册表)之前在服务器 JVM 的属性中指定主机。
于 2013-07-01T00:22:21.793 回答