posts - 8,  comments - 46,  trackbacks - 0
接收包基类CInPacket,发送包基类COutPacket
QQ协议中,不管是接收包还是发送包,在应用层都分为三个部分:
包头,包括协议类型,源QQ版本号,命令号,和包序列号,发送包还有一个需要/不需要ack标志
包体和包尾,其中包体是需要加密解密的部分,以后再介绍
值得注意的是,QQ号码和密码等等都是在包体即需要加密解密的部分中,但包头中包含的东西非常重要,它包括:

QQ协议类型,如QQ基本协议族用的是QQ::QQ_HEADER_BASIC_FAMILY(CInPacket/COutPacket的m_bHeader)
源QQ版本号,在发IM包(即和其它QQ号通讯)中,在包体也会设置一次,但和QQ系统通讯时,这个源QQ版本号就是这个协议库使用的版本号,现在是QQ::QQ_CLIENT_VERSION_0E1B,即QQ2005的版本号(CInPacket/COutPacket的m_sSource)
命令号,这个就很多了,每个CInPacket/COutPacket派生类会设置这个值(CInPacket/COutPacket的m_sCommand)
包序列号,QQ用它来防止丢包,这个只是发IM包时用到,包序列过程以后介绍(CInPacket/COutPacket的m_sSequence)

代码svn:https://vcye23.svn.sourceforge.net/svnroot/vcye23/qqprotocol/
引用请注明出处,谢谢
posted on 2007-10-12 00:27 叶子墙 阅读(1460) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(15)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜