下面我們開始接觸基本協議族具體的發送/接收包,所有的QQ會話都開始于客戶端發送基本協議族的請求登錄包,這個包的包體是空的,但是在包頭因為有請求登錄的QQ號(實際上正如前面介紹的,每個基本協議族包的包頭都帶有QQ號),服務器會知道是哪個QQ號請求登錄
QQ服務器返回應答,應答的包體是明碼傳輸的(因為現在還沒有密鑰),包括回復碼,如果允許這個號碼登錄則回復碼是QQ.QQ_REPLY_OK,而且返回一個登錄令牌,這個登錄令牌是在整個QQ會話過程中的第一個密鑰
在QQProtocol中請求登錄包是CBasicOutPacket派生類CRequestLoginTokenPacket實現的;而其回復包是CBasicInPacket派生類CRequestLoginTokenReplyPacket實現的。
正如在基本協議族消息管理器中介紹的一樣,請注意CBasicFamilyParser代碼改變了
而且因為CRequestLoginTokenReplyPacket要直接訪問CQQUser的非公開成員,所以CQQUser代碼中CRequestLoginTokenReplyPacket被設為CQQUser的友元
代碼svn:
https://vcye23.svn.sourceforge.net/svnroot/vcye23/qqprotocol/引用請注明出處,謝謝
posted on 2007-10-20 01:37
葉子墻 閱讀(1804)
評論(0) 編輯 收藏 引用