摘要:社会信息化速度加快,人们对信息的获取相比过去有了更迫切的需求。一些提供信息获取方案的产品陆续出现,如ICQ、QQ、MSN、Google talk。时至今日,这些优秀的即时聊天软件已经在社会信息化中大放异彩,为人们提供了更快更方便的信息交流与分享的方案,甚至彻底改变了部分人的信息获取方式。
为了进一步提高即时聊天软件的方便程度,我基于可扩展通讯和表示协议(XMPP)开发了一款即时聊天软件gc_talk客户端。该客户端基于windows系统,在VS2008 IDE环境下开发,使用微软提供的MFC类库开发客户端界面,选用开源的XMPP协议开发包gloox作为客户端底层通信协议。对于服务器,我选用了基于XMPP协议的开源服务器openfire,将其部署在本地PC中,方便客户端的调试和通信。该系统的运行原理是:gc_talk客户端通过gloox提供的XMPP协议API将信息进行封装并传送给openfire服务器,服务器对XMPP数据包进行解析,对数据包中的相关设置参数保存在服务器对应的客户端帐号信息中,若数据包中包含发送给其他客户端帐号的数据,则服务器将信息发送给对应客户端。
经过对gc_talk客户端不断的修改和完善,gc_talk已实现注册,登录,文本聊天,文件传送,好友管理等功能。整个聊天系统的优势相当明显,具有实时、高并发、界面简洁、操作方便等优点。
关键词:XMPP,openfire,gloox,MFC
目录
摘要
ABSTRACT
1.引言-1
2.应用软件整体规划-2
3.XMPP协议简介-4
3.1 概述-4
3.2 XMPP技术-4
3.2.1 XMPP协议特点-4
3.2.2 XMPP网络架构-5
3.2.3 XMPP通信原语-6
3.2.4 XMPP地址空间-8
3.3 基于XMPP协议开发的优秀产品-8
4.openfire服务器简介-10
4.1 openfire服务器特点-10
4.2 openfire服务器安装与设置-10
4.3 openfire服务器查看用户信息-12
5.Windows API及MFC类库简介-13
5.1 Windows API及MFC特点-13
5.2 Windows多线程-14
6. 开源XMPP协议库gloox解析-17
6.1 概述-17
6.1.1 gloox开源协议库-17
6.1.2 gloox协议库设计模式-17
6.2 各功能模块实现-19
6.2.1 注册-19
6.2.2 登录-20
6.2.3 获取好友列表-20
6.2.4 增删好友-21
6.2.5 文本聊天-22
6.2.6 文件传输-22
6.3 客户端整体实现-24
6.3.1 界面的设计-24
6.3.2 主线程维护界面响应-25
6.3.3 子线程维护网络通信-25
7. 实验测试-27
7.1 gc_talk客户端登录测试-27
7.2 gc_talk客户端获取好友列表测试-27
7.3 gc_talk客户端增删好友测试-28
7.4 gc_talk客户端聊天测试-28
7.5 gc_talk客户端文件传输测试-29
8. 结论-30
致谢-31
参考文献-32