2013-10-02 12 views
0

我正在製作使用藍牙的應用程序,並且我意識到通過藍牙在兩臺正在運行的設備之間交換數據非常簡潔。然而,據我所知,大多數藍牙設備使用傳統的服務器/客戶端架構,因此信息交換是單方面的,即客戶端請求來自服務器,服務器的數據發送它,而不是相反。藍牙 - 在不使用服務器/客戶端關係的情況下交換數據

爲了解決這個問題,我試圖讓每個設備都有一個服務器實例以及一個客戶端實例,以便客戶端可以連接另一個設備中的服務器。然而這看起來並不高效,因爲這需要2個通信通道而不是1個通道。

然後我試圖將藍牙網站,他們建議「角色轉換」,即,當服務器需要從客戶端的一些數據,服務器使自己在客戶端和客戶端成爲一個服務器,所以作用是相反的。我也不太喜歡它,因爲爲什麼兩個設備不能同時扮演同一角色並交換數據?這是什麼樣的連接呢?

我還沒有網絡的經驗,所以我的問題可能看起來很天真,但我想有人指出答案,或告訴我什麼信息/我錯過了哪本教科書的章節,所以我可以維基。

回答

0

角色切換會影響底層的藍牙拓撲結構:哪個設備是微微網中的主設備。這可能會影響連接的質量,但它並不會以您想象的方式直接影響溝通的方向:它的程度要低得多。

是的,在Android藍牙通信是使用套接字抽象完成的,套接字連接的設置是以客戶端 - 服務器方式完成的。但一旦套接字連接雙方都有一個BluetoothSocket實例,我很確定雙方都可以獲得輸出流並啓動通信。是什麼讓你覺得不對?

+0

這是因爲我正在讀名爲BlueCove的API,我發現沒有主動請求數據從服務器到客戶端的方式。我可能只是誤讀了一些頁面。我會再看看它。謝謝 – turtlesoup

相關問題