posts - 8,  comments - 46,  trackbacks - 0
有了请求登录包返回的密钥(CQQUser::m_pbInitKey),就可以开始构造登录包了(这里顺便提一下,登录包里带有QQ最重要的数据——密码,没有登录密钥直接发送密码原文是极不安全的,这也是为什么登录包之前还要请求登录/应答过程的原因)。
登录和登录回复包是用登录密钥加密/解密的
登录包构造(CLoginPacket::PutBody)和登录回复解析(CLoginReplyPacket::ParseBody)的每一步在源代码中注释都有说明,其中着重注意:
登录包构造中:没什么好说的,看代码
登录回复包解析中:
很多请况下不会直接登录成功,而是由服务器返回一个登录重定向包(回复码是QQ.QQ_REPLY_LOGIN_REDIRECT),而且不止一次重定向服务器,所谓重定向即——你向一个QQ服务器发送登录请求,而这个服务器会告诉你另一个QQ服务器地址和端口(不要告诉我你认为腾讯只有一个服务器),这时你就要向后者重发登录包(但是登录密钥都是一样的)。至于为什么不直接在这个服务器登录,这你就要问腾讯的客服了(取决于服务器的策略)
如果登录失败,会返回失败消息的字符串
最后就是登陆成功的消息,登录成功会返回很多重要信息,包括你想到的和没想到的,其中session key(会话密钥)是下一个密钥,你今后发送的大多数消息和接收的大多数消息,都是用这个密钥加密解密的

代码svn:https://vcye23.svn.sourceforge.net/svnroot/vcye23/qqprotocol/
引用请注明出处,谢谢
posted on 2007-10-26 23:20 叶子墙 阅读(3060) 评论(5)  编辑 收藏 引用

FeedBack:
# re: 开始上线!登录/应答
2007-10-27 00:28 | Minidx全文检索
呵呵,写这个,博主不怕被抓阿  回复  更多评论
  
# re: 开始上线!登录/应答
2007-10-27 00:50 | 叶子墙
@Minidx全文检索
这个。。。
都是网上公开的东西,我只是组织一下,写写代码而已
  回复  更多评论
  
# re: 开始上线!登录/应答
2007-10-27 10:00 | 万连文
关注,希望能够做下去。  回复  更多评论
  
# re: 开始上线!登录/应答
2007-10-29 11:09 | Icat
博主可以直接用libeva,VC可以直接编译和使用
如果参与改进libeva..那多棒阿..现在几乎yunfan一人在干活
  回复  更多评论
  
# 主要代码没有
2007-10-29 12:38 | bluker
CQQClient.cpp 呢?
博主本着开源的精神,把数据打包过程贴出来吧。:)
大量的纯虚函数。。。有点晕吧:)  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(15)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜