递归火山软件开发平台

标题: 建议为【火山安卓的数据报组件】增加组播功能 [打印本页]

作者: 孤独靖仇    时间: 3 小时前
标题: 建议为【火山安卓的数据报组件】增加组播功能
在使用火山安卓进行网络开发时,发现一个问题:火山安卓的数据报组件似乎没有组播功能。
实际场景中,有时候需要夸多个网段进行设备发现和数据传输,纯广播模式无法很好满足需求。而且火山视窗的数据报组件有“加入组播”这类功能,跨平台开发时两边功能不对等,比较麻烦。

问题描述:
功能缺失: 火山安卓的数据报组件目前仅支持单播和广播模式,缺少组播(Multicast)功能的封装。使用广播地址(如 255.255.255.255 或网段广播地址)时,无法跨网段通信,广播报文通常被路由器隔离-。
跨网段需求: 在复杂局域网环境(如子网掩码非标准、设备分布在多个网段)下,组播是更优的解决方案——只需向组播地址发送一份数据,所有加入该组的设备都能收到,大大降低网络负载-。
平台差异: 火山视窗的数据报组件已经支持组播功能(有“加入组播”等选项),而火山安卓同类组件却没有,造成跨平台开发时两边通信协议无法统一,增加了开发难度。

参考背景:
Android 系统本身是支持组播的,但需要通过 WifiManager.MulticastLock 获取组播锁才能接收组播数据包(出于省电考虑,Android 默认不接收组播消息)-。获取锁需要 CHANGE_WIFI_MULTICAST_STATE 权限-。
从安卓类库层面来看,之前也有用户反馈过类似问题:在 HPSocket 安卓库中尝试使用组播模式,各种组播 IP(224.0.0.0~239.255.255.255)都启动失败,而 PC 端全部成功-2。说明火山安卓目前的网络类库在组播支持上确实存在短板。

建议:
希望官方能在火山安卓的数据报组件中增加组播相关方法,例如:

加入组播(组播地址, 端口)
离开组播(组播地址)
设置组播锁(MulticastLock)自动管理


这样一来,跨网段通信的问题就能解决,火山安卓和火山视窗在数据报功能上也能够对齐。
有遇到同样需求的朋友吗?一起顶一下,希望官方能考虑!




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4