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