android中udp协议广播的实现
2015-04-27 15:11
246 查看
这是本人在实现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协议在发送广播它只负责发送,并不管你是否接受成功.所以当我们在发送广播时务必多发送几个,也就是循环发送!!!本人就是掉在这个坑中爬了好久
本人就不贴代码了,如果需要代码的留言留下邮箱说明下,我有空会发过去.
以下几个问题可能导致无法接受到广播
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协议在发送广播它只负责发送,并不管你是否接受成功.所以当我们在发送广播时务必多发送几个,也就是循环发送!!!本人就是掉在这个坑中爬了好久
本人就不贴代码了,如果需要代码的留言留下邮箱说明下,我有空会发过去.
相关文章推荐
- 用UDP实现广播协议
- 用UDP协议实现广播通信
- 用UDP协议实现广播通信
- Android使用wifi通过UDP协议发送广播数据包给PC接收不到问题解决方法
- 用udp协议通讯示例 UDP实现广播接收回复的例子
- 【Qt点滴】UDP协议实例:简易广播实现
- iOS- 移动端Socket UDP协议广播机制的实现
- Android实现基于TCP和UDP协议的即时通讯,含android端和服务器端
- iOS- 移动端Socket UDP协议广播机制的实现
- python+soket实现UDP协议的局域网广播程序
- iOS —— 客户端Socket UDP协议广播机制的实现
- iOS 利用Socket UDP协议广播机制的实现
- iOS 利用Socket UDP协议广播机制的实现
- Android实现基于TCP和UDP协议的即时通讯,含android端和服务器端
- Python+Socket实现基于UDP协议的局域网广播功能示例
- 【代码练习8】UDP协议实现局域网屏幕广播功能
- Socket UDP协议,局域网广播,Android为服务端,pc为客户端
- Android TCP协议与UDP协议的实现
- (UDP协议的应用)简单的广播实现
- android实现基于TCP和UDP协议的即时通讯,含android端和服务器端