递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 29|回复: 0
打印 上一主题 下一主题

[安卓] 建议为【火山安卓的数据报组件】增加组播功能

[复制链接]

12

主题

178

帖子

808

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
808
跳转到指定楼层
楼主
发表于 5 小时前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用火山安卓进行网络开发时,发现一个问题:火山安卓的数据报组件似乎没有组播功能。
实际场景中,有时候需要夸多个网段进行设备发现和数据传输,纯广播模式无法很好满足需求。而且火山视窗的数据报组件有“加入组播”这类功能,跨平台开发时两边功能不对等,比较麻烦。

问题描述:
功能缺失: 火山安卓的数据报组件目前仅支持单播和广播模式,缺少组播(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)自动管理


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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2026-4-16 06:00 , Processed in 0.083349 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表