2011-06-29 86 views
0

只要我在本地主機上運行多個客戶端,一切正常。當我在其他主機上啓動客戶端時出現問題。在Java遠程客戶端上進行遠程查詢RMI

例如,在執行期間的某個時間點,服務器上的方法以localhost作爲目的地來調用,這意味着服務器突然忘記了遠程客戶端的IP地址。這怎麼可能?

此外,由服務器執行的遠程查找需要永久完成。它可能是我的路由器拒絕訪問它嗎?或者服務器拼命嘗試使用不同的路徑到達遠程主機?

+0

你是什麼意思的服務器忘記客戶的IP?讓客戶端開始與服務器通信,服務器應創建一個列表或將這些IP數據保存在某個地方並用於進一步的通信。 – doNotCheckMyBlog

+1

您如何從客戶端進行查找?你如何在服務器端創建註冊表?從您的應用程序或您之前開始?以及如何在註冊表中綁定對象?一些代碼或堆棧跟蹤會很好。就查找時間而言,afaik在windows和unix操作系統上有所不同。在Unix上它需要更長的時間。您可以通過擴展RMISocketFactory類來更改該值。有一些教程如何做到這一點 – peshkira

回答

1

服務器不需要執行遠程查找。客戶做到這一點。

如果您的客戶拋出ConnectExceptions表示他們嘗試連接到'localhost',如果他們不應該,請參閱RMI FAQ的項目A.1。