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

javamy034 2012-11-26 09:32:09
用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的,要拆成多少个包
接收方收到包,如何来确认顺序

谢谢
...全文
362 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshi123 2012-11-26
  • 打赏
  • 举报
回复
LumiSoft.Net本身不提供分包/组包功能,需要自己实现,我在另外一个帖子里回了: http://bbs.csdn.net/topics/390289781 包的最大长度是MTU,在了luminsoft里设成了常量1400,rtp包头长12,所有最大的payload为1388。 每个包都有seqno,它是顺序增长的,确认顺序的话可以根据seqno来判断。 rtp头中有IsMarker标记,可以用来标记一帧中的最后一个包(这是符合RFC2435规范的) 另外4M的帧无论如何在百兆网中是传不了的,你要把jpeg的压缩质量调低,或改用其它压缩算法。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧