RTPoverRTSP包混合发送的解决办法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RT闵口RTSP昆合发生的意思是两路信息使用同一端口,这是因为方便端口映射。也就是说这个端口既要传送RTSFPS制命令又要传输码流数据,但这也带来一个问题,由于TCP是无边界识别的,接收到数据后,我们如何分出RTS嗷据和RTP数据? 1禁用negle算法,防止TCP^据的粘合现在让我们假设某个应用程序发出了一个请求,希望发送小块数据。我们可以选择立即发送数据或者等待产生更多的数据然后再一次发送两种策略。如果我们马上发送数据,那么交互性的以及客户/服务器型的应用程序将极大地受益。例如,当我们正在发送一个较短的请求并且等候较大的响应时,相关过载与传输的数据总量相比就会比较低,而且,如果请求立即发出那么响应时间也会快一些。以上操作可以通过设置套接字的TCP_NODELA啊来完成,这样就禁用了Nagle算法。 另外一种情况则需要我们等到数据量达到最大时才通过网络一次发送全部数据,这种数据传输方式有益于大量数据的通信性能,典型的应用就是文件服务器。应用Nogle算法在这种情况下就会产生问题。但是,如果你正在发送大量数据,你可以设置TCP_CO滩项禁用Nagle化,其方式正好同TCP_NODELAY反(TCP_CORK: TCP_NODELAY互相排斥的)intnodelay=1;setsockopt(connfd,IPPR0T0_TCP,TCP_NODELAY,amp;nodelay,sizeof(nodelay));intKeepAlivel=O;setsockopt(connfd,SOL_TCP,TCP_C0RK,(char*)amp;KeepAlivel,sizeof(int)) 这样发出去的每个包要么是RTS饱,要么是RTP包,防止了两种包粘合在一起,造成接收端无法拆分。 2码流中嵌入二进制数据关于RT洵如何切片的问题,在每个包的第一个字节填充$(0x24),第二个字节可以定位为设备的通道号,第三、四个字节为RT洵的长度。 总结:关于设置socket的属性:由于socket的属性可能只满足某些特定的应用情况,如它默认的方法就是使用negle算法,需要将包组合到一定大小后发送,这可能对性能会有所影响,同时接收后也要进行一些分包操作。不满足RTS雨RTP昆合发生的情况。还有需要设置缓冲区保证网络传输的的流畅性等

文档评论(0)

gaozhigang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档