im即时通讯系统服务器端的设计与实现(源码)【字数:19433】
目录
第一章 绪论 1
1.1 即时通讯系统开发背景 1
1.2 即时通讯系统开发意义 1
1.3 即时通讯系统研究内容 2
第二章 即时通讯系统相关技术 3
2.1 ACL框架 3
2.2 C++访问数据库 3
2.3 LOG4CPLUS日志输出 4
第三章 即时通讯系统设计 6
3.1 即时通讯需求分析 6
3.1.1 项目背景 6
3.1.2 功能需求描述 6
3.1.3 开发平台 6
3.1.4 安全性需求分析 6
3.2 数据库设计 9
3.3 功能模块的设计 12<
*景先生毕设|www.jxszl.com +Q: ^351916072#
br /> 第四章 系统的实现 19
4.1 系统配置 19
4.2 类的实现 20
第五章 即时通讯系统测试 34
5.1 系统测试方法 34
5.2 系统测试 34
5.3 测试目的 38
5.4 测试结论 38
第六章 结论 39
6.1 总结 39
6.2 期望 39
致谢 40
参考文献 41
绪论
1.1 即时通讯系统开发背景
随着网络技术的高速发展,即时通讯已经成为一种广泛使用的通讯方式。从1996年11月Mirabilis公司推出的世界第一个即时通讯软件ICQ开始,不到10年时间,即时通讯(Instant Messaging,简称IM)已经发展成为最流行的网络应用。特别是最近几年的迅速发展,使得即时通讯的功能日渐丰富,它已经不再是个单纯的聊天工具,更是集沟通、娱乐、电视、音乐、资讯、游戏、电子商务等为一体的信息平台。
目前国内外即时通讯领域风起云涌,即时通讯作为继Email和Web之后最主要的网络应用,成为了各大商家的必争之地。国内的形式由于腾讯公司旗下产品QQ的垄断优势明显,使得表面稍显平静,实则暗流涌动。目前来看,腾讯公司以压倒式的优势占据了国内即时通讯应用市场近八成份额,并且牢牢抓住低端市场,用户量巨大。其他的即时通讯应用如微软的MSN(WLM)、网易POPO、TOM Skype、Google Gtalk、新浪UC等占有率极为惨淡,还有一些不知名的即时通讯应用等等,凡是国内较为知名的互联网企业,几乎没有不推自家即时通讯应用的。然而这些IM应用不能实现互联互通,导致他们的用户数量极少。
1.2 即时通讯系统开发意义
互联网的出现不仅为人们提供了信息交互的新媒体、新技术,而且为人们提供了新的交流平台。互联网的普及也使得一种新兴的即时通讯工具成为了人们使用频率最高的工具。它的发展随着信息技术的发展日益完善。它可以加快消息传递速度,降低了通讯的成本,提高了交流的效率。即时通讯工具对每个在互联网上的人来说都是已经成为了必备的工具,它克服了传统人际交往的限制。因此即时通讯对人际关系有着深远的现实意义,而且也越来越受到人们的关注。实践意义就是致力于构建两者的正向关系,发挥它对人际关系有利的一面。
1.3 即时通讯系统研究内容
由于即时通讯应用可以加装到台式机、手机、笔记本电脑等终端上,具有强大的通讯能力,能有效地降低通讯费用,提高通讯效率。
1、主要研究内容有以下几个方面:
(1)查阅相关资料,学习ACL框架的使用
(2)查找现阶段即时通讯软件的发展状况及相关功能
(3)学习C++开发语言中Socket编程技术
2、在上述研究基础上,本系统的相关功能如下:
(1)用户登录
(2)添加好友
(3)好友分组
(4)即时通讯(聊天)
(5)图片传输
(6)创建群组
(7)群组聊天
3、课题研究拓展方向:
(1)文件传输功能
(2)视频聊天功能
4、研究方法:
查阅网络通讯相关的书籍、文献资料、开源代码,进行系统地学习。和老师、同学还有对即时通讯有经验的朋友进行沟通交流学习。参考一些比较成熟的即时通讯软件功能。
即时通讯系统相关技术
2.1 ACL框架
ACL框架是一个跨平台的网络通行库以及服务器端编程框架,而且提供更多实用功能库。通过该库,可以较为容易地编写支持多种模式的服务端程序。此外,该库提供了常见的客户端通信库(如:HTTP、ICMP、Redis、SMTP、memcache、beanstalk、hanlder socket),常见流式编解码库(如:XML、JSON、MIME、BASE64、UUCODE、QPCODE、RFC2047)。
ACL框架主要包含5个库:lib_acl、lib_protocol、lib_acl_cpp、lib_dict、lib_tls。
本项目主要使用了lib_acl、lib_acl_cpp和lib_protocol三个库。
其中lib_acl库是其他两个库的基础,lib_protocol库用来实现http协议,lib_acl_cpp则是对两个库进一步的封装。
2.2 C++访问数据库
本项目使用MySQL自身API函数进行数据库连接,步骤为:
(1)在附加包含目录中添加MySQL头文件。
(2)将动态链接库文件libmysql.dll和静态链接库文件libmysql.lib链接到项目中。
原文链接:http://www.jxszl.com/jsj/rjgc/77985.html