Re: [問題] client/server 多重連線問題
: : 第一次在板上發文 如有不當請各位見諒
: : 一般client/server都是 1對1 或 多個client對1個server
: : 目前因為程式功能需要 想請問各位有沒有辦法
: : 1個client 連結多個server??
: : (不需同時 簡單講就是很多SERVER開著 一個CLIENT可以"搜尋"取得SERVER資訊)
: : P.S.其實目前在弄的是J2ME的藍芽連線 不過想說如果JAVA SOCKET 做得到的話
: : 或許藍芽的方法也可以出來 所以麻煩各位給予指點了!!不一定要藍芽的!!
: : P.S.2 之前有試過以迴圈方式進行(重新執行CLIENT) 不過他似乎會一直連到同一個
: : P.S.3 目前SERVER CLIENT在同一之程式上面 簡單說一個程式在執行的時候
: : SERVER一直是開著的 CLIENT會去連別人的SERVER
: : (理想中的目標是CLIENT能夠個別連完範圍中出現的SERVER
: : 並再每個SERVE取得一些資訊)
: : 拜託各位了/(_ _)\ 查過書跟網路一直沒頭緒
: =="
: 請讓我跳過你的藍芽問題,因為我很落後
: 到現在還沒用過藍芽這玩意(更不用說寫過了 lol)
: 你用來上 BBS 的 KKMan 或是 PCMan 或是 ZTerm(Java 寫的)
: 都是一個 client 連上多個 server,不是嗎?
他說的不是這一個意思!!!!
: 重點是你建立 connection 要給它不同的 server address
>_<.... 如果藍芽有 ip ... 還麻煩給我一下... 藍芽跟 tcp/ip 好像沒關係!!
: 不然當然會一直連到同一個
: (就像你執行一萬次 HelloWorld... 萬一跑出 HelloMother 你要趕快跑...)
: 至於換到藍芽的環境上頭... 我不熟協定... 不敢亂講
: 只能說用 Socket 是百分百可以的
您說的 Socket 跟藍芽在 Java 上無關!!!
Java 在藍芽上的通訊. 有兩個 key point 要知道
1. BlueTooth 中的 Master/Slave 關係.
2. Java 中的 Bluetooth 協定:JABWT
原問題所問的 , 如果以 BlueTooth 協定上的說法,應該用 Master / Slave 來問,
而不是用 Server/client 來問..
因為您沒有說明是 windows 還是 linux 上的藍芽裝置的開發!!
假設您已將 platform 和 JABWT 之間的問題處理完了!!
在 BlueTooth 的 JABWT 裡面 Master/Slave 關係了解前,先確定硬體在
1. 自己的 BlueTooth 的裝置是 ready 的
2. 可以連向您要的那幾台 Device.
不管是實作 a Master to many slaves 或是 a slave to some Masters.
兩種程式的實作因為 BlueTooth 協定的一些先天限制,所以連線和 handle 的方式不同
在 BlueTooth 中,你如果用 Slave mode 或 Master mode 都可以去搜尋附近有訊號的
裝置才對,再由各個裝置建立連線後,再由被連結的裝置回傳資訊給連結端...
例如你有 1 個 A 裝置(簡稱資料搜集器好了),有一堆 B 裝置...(B1、B2、B3....etc)
流程:
A ===> 本地端的藍芽裝置是否是可以被找到的.
A ===> 確定現在的裝置不在使用中
A ===> 尋找 BT 的訊號範圍(這時候 Master or Slave mode 要有策略上的決定)
A ===> 一開始,例如找到 B2、B3、B7 好了
A ===> 試著去連結 B2....
B2 ===> accept A , 回傳資訊給 A
A ===> 看 mode 不同,這時候就有策略問題啦~~~ (Master 和 Slave 各有限制)
A ===> 再去試著連 B3....
......................
......................
就這樣!!!給發問問題的人參考一下.... 謝謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.196.245
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):