我需要開發一種應用程序,將允許設備從時間傳送給時間(一個裝置發送一個簡單的消息,另一個發送響應)。BluetoothServerSocket:如何處理後續連接
這種通信是不會(在幾分鐘一次)經常發生,所以它似乎沒有要合理,以保持設備之間的永久連接。此外,由於某種原因連接可能會丟失,所以我需要某種恢復邏輯。
相反,我更喜歡的應用程序,以每次需要將數據發送到對等的時間建立新的連接。但是,規格說,在BluetoothServerSocket.accept
返回後,應該關閉服務器套接字。這意味着該應用將不再能夠接收後續的傳入連接。
目前我在考慮不關閉服務器套接字,並以同步的方式處理傳入的連接,從而使應用程序不會嘗試接受新的連接,直到前一個處理和關閉。如果另一個對等方在這樣的處理過程中嘗試連接,會發生什麼?它會失敗還是阻塞,直到服務器準備好接受它?
我測試了我最初的想法(永久的服務器套接字+同步處理)。它似乎在工作:傳入連接等待輪到他們接受。但是,有時客戶端套接字無法連接(超時?),並且其中一個設備在等待時甚至以某種方式解除綁定。 –
看起來我必須爲每個對等設備創建一個單獨的服務器套接字。 –