live555在不知道本地IP地址与网络接口的情况下,通过一个在本地某端口建立一个UDP连接,然后把这个UDP连接加入
到一个组播组 ,当然要对这个组播组进行相应的设置,比如TTL,回环等等;然后通过UDP连接发送一个数据;最后通过这个UDP连接接收这个数据,并且解析相应的发送地址;大概流程就是这样了。
具体的代码片段live555:groupsock/GroupsockHelper.cpp里:
因此我们设置固定的IP地址:
首先设置IP:执行命令: vi /etc/sysconfig/network-scripts/ifcfg-eth0 我的设置如下:
之后还必须设置网关!!!
执行命令:
vi /etc/sysconfig/network 我的设置如下;
保存退出之后重启服务:
service network restart
或者运行/etc/sysconfig/network-scripts/ifup eth0 启动
此时ifconfig查看如下:
运行live555如下:
此时live555服务器就启动了,并能正确的获取本机IP地址
使用VLC播放器在windows下能播放linux服务器下的媒体文件!
其他
iptables导致live555无法获取本机ip地址
今天在服务器上安装了下live555,结果怎么打开也找不到自己的ip,一直报0.0.0.0。百度了一会之后觉得应该是live555在确定ip时候出了问题。
live555是向15947发送一个数据报然后再确定ip的(愚以为)。
在live555源代码下搜索一下端口15947
grep -R --include=*.cpp "15947" live555
发现在 live555源码的groupsock/GroupsockHelper.cpp 中 live555是通过连接本机的15947端口来确定自己的ip的。
但是,本机的严密的iptables直接把他deny了!
insert一条端口15947的allow在适当的位置就好了!