[c#]实现fms服务器,rtmp协议破解(4),小结一下

[attachimg]1398[/attachimg]

已经成功实现rtmp协议的解包,压包,连接和服务端的connect函数和accept函数也实现了,虽然这不是件容易的事情,但是很有趣。
总结一下,之前一直困惑我的数据包交错问题,也就是说频道在这儿的作用。
rtmp协议是一个实时性要求非常高的协议,所以数据包的发送,接受和处理都不能耗时太长,否则会产生停滞,所以包最大的大小为128k,通过不同的channel,可以同时发送音频,视频,函数调用等各种数据和指令。
在处理环节上, 我们不再能够使用单线程的处理方式,程序必须内建线程池,类似iocp的实现,呵呵。只要有完整包的到达,他就被分发到线程池中,然后通过不断的线程切换,来处理不同用户,不同channel的包,并进行解码发送。发送时是按照一个单位包(128k)同步,这样就能高效的处理信息,并且产生交错式数据。

转载于:https://www.cnblogs.com/mklp98999/articles/1276298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值