live555 windows下多播服务器,无法加入组播问题

在流媒体服务器创建组播时遇到动态IP发现无法加入组播中,通过对比VLC和live555编译选项,发现是由于live555未启用winsock2.h导致的问题。解决方案是在编译时加上WINNT选项即可成功加入组播。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做流媒体服务器。创建组播时:

struct in_addr dest; dest.s_addr = chooseRandomIPv4SSMAddress(env);

const Port rtpPortVideo(videoRTPPortNum);
 const Port rtcpPortVideo(videoRTPPortNum+1);
 rtpGroupsockVideo = new Groupsock(env, dest, rtpPortVideo, ttl);
 rtcpGroupsockVideo = new Groupsock(env, dest, rtcpPortVideo, ttl);
 rtpGroupsockVideo->multicastSendOnly();
 rtcpGroupsockVideo->multicastSendOnly();

在Groupsock构造时调用socketJoinGroup,动态IP发现无论如何都无法加入组播中。opRTSP一直无法获得数据,但VLC又可以播放。后来经过查看VLC源码,发现VLC使用winsock2.h(ws2_32.lib),而live555编译时没有打开编译winsock2.h,一直使用winsock1.0版的。所以一直不成功。所以在编译时需要加上WINNT选项就可以了。

希望能给碰到这个问题的朋友有所帮助。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值