|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 大连dalian 于 2011-4-22 10:06 编辑
在搭建好的组播网络环境中,用XP下的组播测试软件进行测试,一切正常。在组播路由器和支持组播的交换机上也可以show出相应的组播组和组播路由表。 但是用虚拟机下的测试程序进行测试时,只能在同网段下可以接收到组播数据,即组播数据不能跨网段传输。
解决策略:因为组播编程中的IP_MULTICAST_TTL默认为1,可以通过getsockopt查看。知道了这一点,就可以解释上面的问题了。所以下一步要通setsockopt函数来设置IP_MULTICAST_TTL的值。
附加说明:在用到的ORTP-0.15.0协议栈内部,可以看到IP_MULTICAST_TTL已经将此值设为5.可根据需要灵活设置其它值。
self_ttl=rtp_session_get_multicast_ttl(ca->rtp_session);
printf("返回的self_ttl==%d\n",self_ttl);
self_ttl=133;
rtp_session_set_multicast_ttl(ca->rtp_session,self_ttl);
new_self_ttl=rtp_session_get_multicast_ttl(ca->rtp_session);
printf("返回的new_self_ttl==%d\n",new_self_ttl); |
|