接收包基類CInPacket,發(fā)送包基類COutPacket
QQ協(xié)議中,不管是接收包還是發(fā)送包,在應(yīng)用層都分為三個(gè)部分:
包頭,包括協(xié)議類型,源QQ版本號(hào),命令號(hào),和包序列號(hào),發(fā)送包還有一個(gè)需要/不需要ack標(biāo)志
包體和包尾,其中包體是需要加密解密的部分,以后再介紹
值得注意的是,QQ號(hào)碼和密碼等等都是在包體即需要加密解密的部分中,但包頭中包含的東西非常重要,它包括:
QQ協(xié)議類型,如QQ基本協(xié)議族用的是QQ::QQ_HEADER_BASIC_FAMILY(CInPacket/COutPacket的m_bHeader)
源QQ版本號(hào),在發(fā)IM包(即和其它QQ號(hào)通訊)中,在包體也會(huì)設(shè)置一次,但和QQ系統(tǒng)通訊時(shí),這個(gè)源QQ版本號(hào)就是這個(gè)協(xié)議庫(kù)使用的版本號(hào),現(xiàn)在是QQ::QQ_CLIENT_VERSION_0E1B,即QQ2005的版本號(hào)(CInPacket/COutPacket的m_sSource)
命令號(hào),這個(gè)就很多了,每個(gè)CInPacket/COutPacket派生類會(huì)設(shè)置這個(gè)值(CInPacket/COutPacket的m_sCommand)
包序列號(hào),QQ用它來(lái)防止丟包,這個(gè)只是發(fā)IM包時(shí)用到,包序列過(guò)程以后介紹(CInPacket/COutPacket的m_sSequence)
代碼svn:
https://vcye23.svn.sourceforge.net/svnroot/vcye23/qqprotocol/引用請(qǐng)注明出處,謝謝
posted on 2007-10-12 00:27
葉子墻 閱讀(1503)
評(píng)論(0) 編輯 收藏 引用