令我困扰的粘包问题。

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

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

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

只有注册用户登录后才能发表评论。
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(12)

随笔分类

随笔档案

文章分类

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜