新浪博客


3.4输出项目 3
3.5算法 3
3.6程序逻辑 3
3.7接口 3
3.8存储分配 3
3.9限制条件 3
3.10测试要点 3


1.引言

1.1编写目的

使用QQ的聊天工具要求简洁,操作简单,以处理各种事物为核心的,具有开放性和正确性,健壮性,高效性,安全性,简洁性,可以运行在各种使用TCP/IP协议作为通讯的网络上。
本系统设计分为服务器应用和客户端应用程序两大部分,采用WinSock套接字库进行网络编程。为了既有效保证数据传输的时效性,又能够保证数据正在传输的过程中不会造成数据的丢失,采用的UDPTCP/IP相结合的链接方式。同时采用多线程技术来避免程序阻塞,提高响应效率。
使用对象:局域网的成员,各单位办公区、联系密切的同学朋友及家人、公司同事等,使用前仔细阅读此软件说明是很必要的,以便更好的使用、管理和维护此系统


1.2项目背景

随着网络的普及,人类生活越来越依赖网络,人与人之间的交也更多的是在网络上进行, 于交流的实时性,即时通讯系统也被越来越多的人所使用。 即时通讯系统除了普通的生活上的交流,也在商业交流中越来越受到重视,它可以是 个很好的与客户之间即时交流的平台,在时间上它要比电子邮件更加具有实时性,而费用相对 电话交流也要经济的多。
在这种环境下,QQ聊天软件作为一种即时通讯工具,得到了很好的发展。
A开发项目名称:模拟QQ聊天系统
B:本任务提出者:王文飞
C:开发者:网络工程 黄秀平 袁宁淑 程雪梅 李旭
D:用户:使用QQ的用户


1.3定义

系统:模拟QQ聊天系统
采用UDPTCP/IP相结合的链接方式
使用C++网络编程


1.4参考资料

Visual C++网络编程开发与实践》 清华大学出版社
《数据库系统概论》(第四版)20065 王珊 萨师煊著 高等教育出版社
C++开发案例》 20085人民邮电出版社


2.总体设计

2.1需求概述

局域网通讯系统软件的运行环境为各单位,公司的局域网系统,主要适用于单位系统内部人员的通讯,目的在于方便交流,提高工作效率。使用用户可以使用备用登录功能,聊天功能,查询功能,娱乐功能,账号管理功能,申请功能的软件,主要用于聊天交流。

2.2软件结构

2013-06-18《C++仿QQ系统设计与实现-期末作业》



3.程序描述

一、通信模块
进行聊天需要建立服务器端Socket和客户端Socket,并且要链接上,这样才能够进行信息的传达,通信模块主要的就是这个部分Socket建立和链接。
2013-06-18《C++仿QQ系统设计与实现-期末作业》
服务器端的Socket建立和链接 客户端的Socket建立和链接







二、声源采集模块
用户按语音聊天开始键以后,就可以开始语音聊天了,要进行数据传送,就得有声源采集模块,采集到声源以后把语音的数据缓冲到缓冲区。



三、声音数据传输模块
声源采集模块放到缓冲区里语音数据经过这个模块以后到达音频再生模块。在这里采集到的声源数据并不能保证完全保存并运行传达,因为可能会出现声源数据如果多于录音内存量的话不可能进行保存,而要等待经过音频再生模块并释放出来内存,然后再进行保存。
2013-06-18《C++仿QQ系统设计与实现-期末作业》
声音数据传输模块流程图



四、音频再生模块
五、经过处理过的语音数据通过音频处理模块传送到这个模块,当接收到语音数据以后它将经过录音的语音数据进行放音,然后把内存释放出来以备保存其他缓冲区里保存的声源信息。
2013-06-18《C++仿QQ系统设计与实现-期末作业》
音频再生模块
经过这个模块好后才完成语音聊天的建立,如果想结束聊天只要断开与对方建立的链接就可以了。


3.1功能

1、申请账号

服务器收到用户的申请账号的请求,便开始接受客户传递的信息,诸如客户的呢称,性别,籍贯,个人资料等,接受完毕后,通过与后台数据库连接,向数据库添加记录,如果成功,便向客户返回其号码。客户收到服务器返回的信息后,便打开主登陆窗口。

2013-06-18《C++仿QQ系统设计与实现-期末作业》

2、登陆

在客户端,用户输入其号码和密码,然后建立与服务器的连接,告诉服务器我要登录,服务器收到后,开始读取数据库,然后与用户输入的信息比较,如果成功,便打开主程序窗口。然后客户向服务器请求读取好友名单,服务器收到该请求,开始读取数据库中的表,得到好友的号码后,再在表中读取好友资料,然后向客户端发送这些信息,客户收到后就在主窗口显示好友,并且建立几个矢量用以存储好友的呢称,号码。

2013-06-18《C++仿QQ系统设计与实现-期末作业》

3、文件共享

在启动文件传输服务器的共享文件功能之前,要设置它的IP号和端口,如果设置不好。好友将无法下看到这些共享的文件。还有一个重要的步骤就是添加共享文件或目录。最后启动文件共享。

2013-06-18《C++仿QQ系统设计与实现-期末作业》

4下载文件

使用文件传输的客户端要正确配置好服务器的IP和端口号,以及下载好的文件的存放目录。如果其中之一配置不好,文件下载将会失败。设置好以后,点击“连接”按钮,如果配置正确,这时将会看到服务器共享的文件。目前不能支持文件夹下载,当看到一个文件夹以后,可以双击该文件夹并查看文件夹里面的文件。



3.2性能

首先要求程序要完全可靠,可以应对种种由于系统问题产生的错误,比如初始网络失败,对方突然下线等。要求提前设想到类似的尽可能多的可能发生的事件,做出相应的应对措施,并向用户提交简单易懂的提示信息。

程序要有良好的容错性,当用户进行非法操作的时候或者系统本身出现问题时要能够以最好的方式退出程序,避免发生程序假死现

我的更多文章

下载客户端阅读体验更佳

APP专享