递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[类库封装] HPSocket两个平台封装的用法差别太大了,组播互通有问题?

[复制链接]

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
跳转到指定楼层
楼主
发表于 2021-5-20 18:21:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
需求情况,网络环境:192.168.0.0-192.168.1.255, 255.255.254.0,目的是用数据报-广播获取当前设备的当前IP。
安卓设备、PC都是DHCP,不好每次翻看具体IP。
如:安卓1:192.168.0.2;安卓1:192.168.0.3;PC1:192.168.0.3;
--------------------------------------------------------------------------
例1:广播模式(服务器地址用网段模式)HP_UDP广播器.传播模式 = HP传播模式.广播
安卓1:HP_UDP广播器.连接(“192.168.0.0”,1314,)     成功   HP_UDP广播器.取本地地址 ----192.168.0.2
安卓2:HP_UDP广播器.连接(“192.168.0.0”,1314,)     成功   HP_UDP广播器.取本地地址 ----192.168.0.3
PC1:HP_UDP广播器.连接(“192.168.0.0”,1314,,,)  失败  HP_UDP广播器.取本地地址 ----192.168.0.0/0.0.0.0(取不到真实地址)
注:安卓之间消息可以互通,PC连接启动失败
--------------------------------------------------------------------------
例2:广播模式(服务器地址用广播地址)HP_UDP广播器.传播模式 = HP传播模式.广播
安卓1:HP_UDP广播器.连接("192.168.1.255",1314,)    成功   HP_UDP广播器.取本地地址 ----192.168.0.2
安卓2:HP_UDP广播器.连接("192.168.1.255",1314,)    成功   HP_UDP广播器.取本地地址 ----192.168.0.3
PC1:HP_UDP广播器.连接("192.168.1.255",1314,,,) 成功  HP_UDP广播器.取本地地址 ----192.168.1.255/0.0.0.0(还是取不到真实IP地址)
注:安卓之间消息可以互通,三机互通。

--------------------------------------------------------------------------
因为可能网络环境会变,比如:192.168.0.0-192.168.1.255, 255.255.254.0-->192.168.2.0-192.168.3.255, 255.255.254.0
而且非 255.255.255.0 的网络下,计算出网段地址与广播地址现在没发现太好的方法(PC端还取不出本地IP)。所以想用组播模式,方便换环境使用。
以下:
--------------------------------------------------------------
例3:组播模式  
HP_UDP广播器.传播模式 = HP传播模式.组播
安卓1:HP_UDP广播器.连接("224.0.0.0",1314,)     失败   HP_UDP广播器.取本地地址 ----192.168.0.2
安卓2:HP_UDP广播器.连接("224.0.0.0",1314,)     失败   HP_UDP广播器.取本地地址 ----192.168.0.3
PC1:HP_UDP广播器.连接("224.0.0.0",1314,,,)  失败  HP_UDP广播器.取本地地址 ----192.168.0.0/0.0.0.0(同样取不到真实IP地址)
注:三种情况都连接启动失败。安卓用:224.0.0.0~224.0.0.255/224.0.1.0~238.255.255.255/239.0.0.0~239.255.255.255全失败PC全成功
--------------------------------------------------------------------------
结论:组播模式下安卓类库 全启动失败本机IP可获取,PC下广播模式虽然只能用.255的广播地址,组播地址都没问题


请问:是不是我用的方式不对?大侠们可不可指导一下安卓端怎么成功启用组播模式?谢谢了!
回复

使用道具 举报

55

主题

313

帖子

2478

积分

金牌会员

Rank: 6Rank: 6

积分
2478
QQ
沙发
发表于 2021-5-20 20:07:53 来自手机 | 只看该作者
如果电脑安装的有虚拟机软件,取本地IP就不只一个,你判断一下取的地址对不对,
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
板凳
 楼主| 发表于 2021-5-20 21:18:23 来自手机 | 只看该作者
李先森 发表于 2021-5-20 20:07
如果电脑安装的有虚拟机软件,取本地IP就不只一个,你判断一下取的地址对不对, ...

都不是,也没开虚拟机,取出来的是设的0.0.0.0的情况多,或者是设定的目标地址,比如设定目标是,192.168.0.255,有时取回是192.168.0.255,发个数据,变成0.0.0.0了。
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
地板
 楼主| 发表于 2021-5-20 21:20:41 来自手机 | 只看该作者
同样的目标设定,安卓类库就没问题,就是真实的本地ip,安卓的问题是组播各种组播ip,都启动失败。
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
5#
 楼主| 发表于 2021-5-20 21:21:59 来自手机 | 只看该作者
安卓可以用网段ip做目标地址,pc版不行,启动失败,返回假。
回复

使用道具 举报

146

主题

1241

帖子

5756

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
5756
QQ
6#
发表于 2021-5-21 06:52:27 | 只看该作者
那两个平台的?
火山视窗封装视频教程
回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40549
7#
发表于 2021-5-21 08:59:04 | 只看该作者
好的,收到。。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
8#
 楼主| 发表于 2021-5-21 09:07:28 | 只看该作者

PC HPSocket 类库一直取不到本地IP,是我用的方式不对,还是?
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
9#
 楼主| 发表于 2021-5-21 09:20:02 | 只看该作者
使用了SocketTool V4 调试工具,用XXX.XXX.XXX.0做,广播目标地址也收不到安卓消息,应该是通常状态。
安卓可以用应该是凑巧了,不是标准用法 :噜阿噜
回复

使用道具 举报

2

主题

59

帖子

309

积分

中级会员

Rank: 3Rank: 3

积分
309
10#
 楼主| 发表于 2021-5-21 09:21:16 | 只看该作者

安卓与视窗两种平台,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 16:04 , Processed in 0.083778 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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