Re: [J2SE] RMI之Client端private ip問題

看板java作者 (JC)時間17年前 (2008/05/25 11:29), 編輯推噓4(401)
留言5則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《reon (完成這條天堂路)》之銘言: : ※ 引述《freshJC (JC)》之銘言: : : 各位不好意思,我目前正在修改某一個RMI的電子白板程式, : : 目前的狀況為:Server端程式在固定ip下開啟,而Client端使用的是浮動ip。 : : 當Client開啟白板程式時,如要將Server端中畫圖的資訊傳至Client時, : : Server端程式會因Client的遠端物件為虛擬ip,而出現Exception: : @@? : 你把RMI Server設在Client端? 你Server都有實體ip了 : 為何要把RMI設在Client端? : 一般來說RMI Server 必須要實體ip的吧 放在Client端很奇怪吧 : 所以你應該要把RMI架在Server端 來啟動RMI程式吧 : 因為架在Server端 即使你Client這邊是虛擬ip也是ok沒問題 : 不知道我講的 跟你所問的一不一樣@@ 不好意思,我似乎沒有講的很清楚。 先回你的疑惑: 1. RMI Server程式確實是在實體ip下開啟,並且Naming.rebind一個rmi URL進去。 Client端便用Naming.lookup去得到Server端的references。 2. 這個白板程式不只是讓Client端去使用Server端的函式, Server端要將畫圖的資訊broadcast給每個Client端時, 也需要使用到Client端的函式來把Client端的白板畫圖上去。 目前的問題就是去使用Client端物件函式時,因為虛擬ip的關係而Connect refuse。 下面連結是我在JavaWorld所發的文,裡面有部份程式碼, 希望能夠幫助你理解問題所在。 http://www.javaworld.com.tw/jute/post/view?bid=5&id=229163&sty=1&tpg=1&age=0 : : java.rmi.ConnectException: Connection refused to host: : : 192.168.1.16; nested exception is: : : java.net.ConnectException: Connection timed out: connect : : 這個問題已經困擾很久了。 : : 我也有去看UnicastRemoteObject的API,發現裡面並沒有直接對ip作修改的函式。 : : 不知有什麼辦法,可以讓Client端程式擁有真實ip的資訊, : : 以讓Server端程式能夠順利broadcast出去。 : : 希望有熟RMI技術的大大能夠幫忙一下,不然最近都快被這個問題搞瘋了......囧 : : 萬分感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.12.172

05/25 11:49, , 1F
或許你可以試看看 stun穿越NAT 將Client的private ip 轉成
05/25 11:49, 1F

05/25 11:51, , 2F
public ip 這樣應該就沒有連線問題了(?)
05/25 11:51, 2F

05/25 15:54, , 3F
你有設過.policy了嗎@@? XP的話是在 使用者資料夾下
05/25 15:54, 3F


05/25 16:12, , 5F
另外就是你把127.0.0.1 換成改成外面看到這台的實體ip看看
05/25 16:12, 5F
文章代碼(AID): #18EDqQ-l (java)
文章代碼(AID): #18EDqQ-l (java)