live555在获取IP失败时,url中的IP地址为0.0.0.0,此时地址是不可用用的,需要解决这个问题可以修改live555的源码实现。具体可修改groupsock/GroupsockHelper.cpp
文件,在netAddressBits ourIPAddress(UsageEnvironment& env)方法中修改如下方法加入自己的获取ip方法,如本文通过修改加入了获取android wlan0的ip地址。
1、查看ip地址
首先通过shell命令查看当前设备的ip地址是否有效,如查看wlan0网络节点的ip地址可以使用如下命令,其余的网卡类似处理:
busybox-smp ifconfig wlan0| grep 'inet addr'|busybox-smp awk -F ":" '{print $2}'|busybox-smp awk '{print $1}'
2、添加代码
在groupsock/GroupsockHelper.cpp文件中找到netAddressBits ourIPAddress(UsageEnvironment& env)方法。在如下代码前加入自己查找ip的代码:
// Make sure we have a good address:
netAddressBits from = fromAddr.sin_addr.s_addr;
if (badAddressForUs(from)) {
char tmp[100];
sprintf(tmp, "This computer has an invalid IP address: %s", AddressString(from).val());
env.setResultMsg(tmp);
from = 0;
}
加入的代码如下: <

当live555在Android上获取IP失败时,返回的URL中IP显示为0.0.0.0。为解决此问题,可以修改live555的源码,特别是groupsock/GroupsockHelper.cpp文件中的netAddressBits ourIPAddress(UsageEnvironment& env)方法,插入自定义的IP获取逻辑,例如获取Android设备wlan0接口的IP地址。
最低0.47元/天 解锁文章
519

被折叠的 条评论
为什么被折叠?



