Android UDP广播包抓取

来源:互联网 发布:oracle sql分页 编辑:程序博客网 时间:2024/06/06 13:08

只是贴代码,以前写的突然忘记了.



    private WifiManager.MulticastLock multicastLock;    public void init(Context context){         WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);         multicastLock = wifiManager.createMulticastLock("my_net");    }    public byte[] fetchData(){        try {            multicastLock.acquire();            MulticastSocket multicastSocket = new MulticastSocket(55551);            InetAddress group = InetAddress.getByName("224.0.0.2");            multicastSocket.setSoTimeout(3000);            multicastSocket.joinGroup(group);            multicastSocket.setLoopbackMode(true);            byte[] buffer = new byte[512];            DatagramPacket packet = new DatagramPacket(buffer, buffer.length);            multicastSocket.receive(packet);            return buffer;        } catch (Exception e) {            e.printStackTrace();        } finally {            multicastLock.release();//一定要释放        }        return null;    }

权限加入


    <uses-permission android:name="android.permission.INTERNET" />    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />    <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />



0 0