關於UDP接受數據報的問題

最近接手一個項目,機器會1秒鐘返回一次數據,手機端UDP接受數據,在很多測試機上都可以成功接收,無奈客戶的出品方是moto,偏偏就moto不能接受還一直拋出異常,在網上查閱資料,都說是阻塞的問題,繼續接收就好了,但顯然不是這麼簡單,繼續接收還是接收不到數據。

在百度Android接受UDP數據的時候,覺得應該是手機系統的問題。經過查詢,應該是系統禁止了接受廣播,以便省電等,

解決方法如下:

WifiManager manager = (WifiManager) this
                .getSystemService(Context.WIFI_SERVICE);
WifiManager.MulticastLock lock= manager.createMulticastLock("UdpRec");

在接受的時候,調用

lock.acquire();

異常還是同樣的拋出,但能成功接收到數據報:

可我的代碼:

終於是解決了這個問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章