天天看點

基于Android熱點的區域網路UDP廣播,部分手機收不到UDP封包的問題

這兩天寫了個小程式,實作的功能為:一台手機發WIFI熱點ap,其他手機接入這一WIFI,在以此組建的區域網路内,可以廣播消息。為了邏輯的通順而選擇了UDP廣播,廣播IP選了255.255.255.255

遇到的問題為:其他android手機收不到熱點手機的udp廣播消息,而熱點手機可以收到其他手機以及自己的UDP封包。當關閉了熱點手機的資料流量以後,熱點手機也不再能夠收到自己的UDP封包。

初步分析:接入WIFI的其他手機的廣播,在區域網路内進行。而作為熱點手機的廣播,在3G公網中進行。

解決辦法:不再使用受限的廣播IP 255.255.255.255 而是直接指向熱點手機所在的區域網路。安卓熱點AP的預設IP為192.168.43.1,是以選擇廣播Ip為192.168.43.255.這樣,熱點手機就不再朝公網進行廣播。其他手機就能夠收到熱點手機的UDP廣播了。