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链接到项目中。

(3)在头文件中声明一下内容,如图2-1:

图2-1  头文件声明图

(4)编码连接MySQL数据库,首先在头文件中定义数据源指针,如图2-2:

图2-2  创建MySQL指针图

编写连接数据库代码,如图2-3:

图2-3  数据库连接代码图

返回0表示连接MySQL数据库失败。

返回1则表示连接MySQL数据库成功,此时数据库指针m_sqlCon指向一个数据库连接实例,可以使用MySQL自身的其他API函数对MySQL数据库进行各种操作。

2。3  LOG4CPLUS日志输出

大型的系统都需要打印日志来记录系统的状态、工作进度。日志也常被用来解决系统BUG、查看数据走向等。由此看来,记录系统日志尤为重要。所以本系统使用了LOG4CPLUS输出日志。

LOG4CPLUS是C++编写的日志系统,前身是java编写的log4j。

LOG4CPLUS具有线程安全、灵活等特点,通过将日志划分优先级使其可以面向程序进行调试、运行、测试以及维护。LOG4CPLUS可以将日志输出到屏幕、文件甚至是远程服务器,通过策略对日志进行定期备份等。

LOG4CPLUS使用的基本步骤为:

(1)实例化封装了输出介质的appender对象。

(2)实例化封装了输出格式的layout对象。

(3)将layout对象绑定到appender对象(默认绑定到logger)。

(4)实例化封住了日志输出的logger对象,并调用器静态函数getInstance()获取一个logger实例。

(5)将appender对象绑定到logger对象。

上一篇:JSP+mysql社区问答系统的设计+源代码
下一篇:JSP网上书店管理系统的设计

jsp+mysql即时通信系统设计与开发

java移动终端的即时通信软件设计与开发

移动平台即时通讯XMPP协议发展研究现状

C#+sqlserver异步socket的即时聊天软件设计

java局域网络的即时聊天系统设计+源代码

Android基于字符型网络通讯系统设计与实现

智能手机中的即时通协议研究

ASP.net+sqlserver企业设备管理系统设计与开发

我国风险投资的发展现状问题及对策分析

安康汉江网讯

麦秸秆还田和沼液灌溉对...

互联网教育”变革路径研究进展【7972字】

LiMn1-xFexPO4正极材料合成及充放电性能研究

老年2型糖尿病患者运动疗...

张洁小说《无字》中的女性意识

网络语言“XX体”研究

新課改下小學语文洧效阅...