2011-09-14 42 views
0

我發現基礎上,例如一個RFCOMM的客戶機/服務器設置爲:http://people.csail.mit.edu/albert/bluez-intro/x502.html我使用的是Linux系統上的bluez堆棧和寫C/C++代碼。如何確定鍵合設備,使藍牙RFCOMM Server知道誰連接到

似乎我無法弄清楚是如何限制僅從粘合/配對設備與服務器的連接。我搜索了Google,並在某種可以實現我的目標的示例代碼中空出來。

基本上我將不得不配對相互通訊將啓動2個設備,但我只希望服務器允許從它粘合到設備的連接。將會有許多設備對運行,所以這種檢查對於確切知道哪些設備相互通信是必要的。在沒有綁定的設備的listen套接字上發現任何連接嘗試都會導致某種拒絕連接。

目前,如果作爲服務器接受命中監聽套接字的任何連接連接到服務器的設備配對到同一臺服務器或沒有也沒關係。

我想在本質上我想知道如何確定我保稅什麼設備,如果有的話,客戶端和服務器上。我認爲藍牙協議會爲我處理這個問題,但似乎我在運行某些測試時弄錯了。

感謝任何人都可以幫助!

回答

0

您可以通過配置etc/bluetooth/hcid.conf(將配對設置爲無)來禁用進一步配對。已經被配對的設備將能夠使用在/ var/lib中/藍牙// linkkeys

+0

存儲鏈路密鑰良好的溝通與此有關的問題是,解除配對和修復設備之間可以發生。所以只是禁用配對不是一個好的選擇。基本上有一個用戶界面和一個設備。當設備連接到USB時,所有其他配對都將被刪除,並且通過OOB機制創建一個新配對。當您將UI和設備配對時,您可以通過OOB將設備與新UI配對。該設備現在已與新用戶界面配對,但原始用戶界面仍認爲已與設備配對。即使設備不再與其配對,通信迴路也會啓動,並且會再次與設備通話。這是一個問題。 – Brian