今天在linux下编译了下live555程序,运行testOnDemandRTSPServer的时候发现,本地IP地址居然为0.0.0.0;
于是乎就跟踪调试了下,看看它是如何获取本地IP地址的,觉得这个方法还行就记录下来。
live555在不知道本地IP地址与网络接口的情况下,通过一个在本地某端口建立一个UDP连接,然后把这个UDP连接加入
到一个组播组 ,当然要对这个组播组进行相应的设置,比如TTL,回环等等;
然后通过UDP连接发送一个数据;
最后通过这个UDP连接接收这个数据,并且解析相应的发送地址;
大概流程就是这样了。
具体的代码片段live555:groupsock/GroupsockHelper.cpp里: