|
需求情况,网络环境: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的广播地址,组播地址都没问题。
请问:是不是我用的方式不对?大侠们可不可指导一下安卓端怎么成功启用组播模式?谢谢了!
|
|