您的位置:首页 > 移动开发

多路广播应用----APP搜索网关调试过程记录

2014-05-13 19:29 411 查看
调试过程logcat出现警告:

java.net.socketException socket failed eacces permisson denied

并且多路广播对象无法返回网关端口号Broadcast_PORT:

multicastSocket = new MulticastSocket(Broadcast_PORT);

原因:建立的socket没有在AndroidManifest.xml中设置权限,这是常犯的错误:

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
添加之后在uses-permission中出现警告:

<uses-permission> tag appears after <application> tag

据说“表面上看没有什么问题,但却埋下了一些<application>内部属性正确生效的隐患”,但是我暂且不管它。

这样一来就可以返回Broadcast_PORT的值了:java.net.MulticastSocket@41091a50,暂时不知什么意思。

接下来又有一个警告:

java.net.IOException:not a multicast group

原因是使用多路广播时需要让一个数据报标有一组目标主机地址,ip协议中提供的这组IP范围是224.0.0.0---239.255.255.255,其中224.0.0.0系统自用。如果设置为其他IP,就会警告。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: