最近很多朋友在群里要求写一些关于QQ协议分析的文章,很多人问我,怎么自己编程实现一个QQ客户端,可以简单登录、聊天、获取好友、群发信息,甚至做成机器人,根据好友发送的信息自动回复等。其实这个东西要从腾讯的QQ协议说起。腾讯公司并没有把QQ的通讯协议公布,接下来的几篇文章中,将以WEBQQ协议为例,通过抓包分析,得到协议内容,最后通过JAVA设计一个可以登录,可以正常收发信息的QQ机器人,希望感兴趣的朋友支持。
说说看本教程需要具备的相关知识:首先掌握一本编程语言,不管是C、C++、Java还是其他的编程语言,希望大家对其中的某一门有一了解、因为我们在后面的教程中涉及到实践;其次,对网络通讯及网络协议有一定的了解,这不是必须的,但是如果你对BS软件原理及通讯有所了解的话学习此教程会很轻松,如果不了解也没有关系。再者就是 对软件的设计模式有一定的了解,同样也不是必须的。下面是整理一下思路,给出接下来我们要讲解的提纲:
1、协议分析基础知识
主要介绍Http协议相关知识,及抓包软件的使用
2、抓包分析WebQQ协议
主要介绍WebQQ中验证、登录、好友列表、群列表、发送信息、接收信息、Poll保持在线等等
3、Java语言中Http通讯介绍
主要介绍集中java中实现Http通信的几种方式,最后我们选择中简单的,实现一个Http协议通信的例子
4、项目需求分析
从软件工程的角度,对我们要实现的项目做整体的分析和认识,主要分析功能
5、项目整体设计
设计项目架构,对项目做整体的设计与分析,给出需要的类图
6、项目详细设计
通过类图,给出类基本架构,类单元测试代码
7、功能实现
对类结构中的方法逐一实现
8、功能验收与测试
针对需求分析中提到的功能做验收测试,整个项目完成。
这是整个项目的开发主要思路,通过一个小项目,走完整个项目的生命周期,相信对于初学者来说是一个提高,在未来的几个星期中我会按照项目中提纲的思路,卓一将教程完成,希望得到大家的支持。如果对WEBQQ协议有什么问题,希望大家加入QQ群 93772282一起讨论,也可以加我的QQ:137336521与我交流,还可以将邮件发送到ghuazo@qq.com我会尽量抽出时间给大家解答