令我困扰的粘包问题。

最近看了非常多精彩的socket文章,让我获益不少。但依然没法完全解决粘包的问题。

客户端,封包。把数据用一个类封装起来,此数据应该分为三个部分,分别为包头,包身,包尾(这个我没有用到)。其中包头包括了协议类型和数据长度,包身就是数据了。
服务端,拆包。先建立一个固定长度的缓冲区,当数据把这个缓冲区填充后,分析包头,把类型和长度(假设为M)取出。把包身(假设长度为N)截取M字节。如果M =N,则数据包完整。如果M > N,数据包不完整,继续循环接收。如果M<N,有完整数据包,但还有第二个包紧跟其后(粘包)。

posted on 2008-06-17 00:27 牛牛猪 阅读(1737) 评论(0)  编辑 收藏 引用 所属分类: Flex / AS3

只有注册用户登录后才能发表评论。
<2008年6月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

常用链接

留言簿(12)

随笔分类

随笔档案

文章分类

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜