下面我们开始接触基本协议族具体的发送/接收包,所有的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
叶子墙 阅读(1793)
评论(0) 编辑 收藏 引用