2013-06-30 99 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