首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

|ZYCWPF| RTP包在UDP中大小应该是多大,对数据大的,怎么进行拆包呢

2012-12-17 
|ZYCWPF| RTP包在UDP中大小应该是多大,对数据大的,如何进行拆包呢?用LumiSoft.Net.RTP的开源RTP代码在发送

|ZYCWPF| RTP包在UDP中大小应该是多大,对数据大的,如何进行拆包呢?
用LumiSoft.Net.RTP的开源RTP代码
在发送大包4M的时候全丢包了,小包没有问题
说明是包太大问题
我看了源码:RTP_Packet中有
         /// <summary>
         /// Gets if packet is padded to some bytes boundary.
        /// </summary>
        public bool IsPadded
        {
            get{ return false; }
        }
也就是这个拆分的,他这个开源的还没有实现
那现在我想改动让他实现可以拆包

那应该如何来拆呢?
比如一个4M的,要拆成多少个包
接收方收到包,如何来确认顺序

谢谢
[最优解释]
LumiSoft.Net本身不提供分包/组包功能,需要自己实现,我在另外一个帖子里回了:
http://bbs.csdn.net/topics/390289781
包的最大长度是MTU,在了luminsoft里设成了常量1400,rtp包头长12,所有最大的payload为1388。
每个包都有seqno,它是顺序增长的,确认顺序的话可以根据seqno来判断。
rtp头中有IsMarker标记,可以用来标记一帧中的最后一个包(这是符合RFC2435规范的)
另外4M的帧无论如何在百兆网中是传不了的,你要把jpeg的压缩质量调低,或改用其它压缩算法。

热点排行