Re: [J2SE] RMI之Client端private ip問題
※ 引述《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
05/25 11:49, 1F
→
05/25 11:51, , 2F
05/25 11:51, 2F
推
05/25 15:54, , 3F
05/25 15:54, 3F
推
05/25 15:57, , 4F
05/25 15:57, 4F
推
05/25 16:12, , 5F
05/25 16:12, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):