android中udp协议广播的实现

这是本人在实现upd局域网广播遇到的问题总结帖.(是广播不是组播)

以下几个问题可能导致无法接受到广播

1. 有些厂家的手机rom默认是关闭了接受局域网广播这个功能的,所以我们需要一个MulticastLock这个类来开启接受广播的功能;

这个MulticastLock是WifiManager的内部类,我们需要一个WifiManager实例才能获得一个MulticastLock实例.

开启广播功能的方法MulticastLock.acquire();

//在这两个方法中接受包就可以了DatagramSocket.receives();

当我们接受完包后必须关闭这个功能multicastLock.release();

这个功能涉及到wifi权限,我顺便把联网的权限贴出来

联网权限

<uses-permission android:name="android.permission.INTERNET"/>
wifi控制权限

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

2.这个问题是udp协议缺点产生的,udp协议在发送广播它只负责发送,并不管你是否接受成功.所以当我们在发送广播时务必多发送几个,也就是循环发送!!!本人就是掉在这个坑中爬了好久


本人就不贴代码了,如果需要代码的留言留下邮箱说明下,我有空会发过去.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值