QQ协议的接收/发送包基类

接收包基类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

http://vcye23.SVN.sourceforge.net/SVNroot/vcye23/qqprotocol/

引用请注明出处,谢谢

Tags:  qq协议 qq数据包

延伸阅读

最新评论

发表评论