仿QQ即时通讯应用软件开发毕业设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仿QQ即时通讯应用软件开发
摘要:本文按照软件工程的思想和开发步骤,采用C/S模式,利用SQL Server数据库,使用Visual C++开发工具设计并实现了一个仿QQ的即时通讯应用软件。该软件实现了消息的即时传输、文本传输、语音聊天等功能,具体包括网络通信、协议包封装与解析、文件传输以及基于directsound框架的音频处理。系统为保证语音传输的质量和效率,采用一定的声音编码格式对声音数据打包并传输到接收方。该系统功能全面,界面美观,操作方便,具有一定的实用价值。
关键词:socket, 文字聊天,文件传输,实时语音传输,directsound
Abstract: In this paper, according to the software engineering and development steps, using C / S mode, the SQL Server database and Visual C++ language the system was designed and implement.The software has implemented the real-time transmission, transmission of text messages, voice chat and other functions, such as network communications, protocol packet encapsulation and analysis, file transfer and frame-based audio processing directsound.To ensure the quality and efficiency of the voice transmission the system adopt a certain voice encoding format for audio coding packaged and transmitted to the receiver side. The system is fully functional, beautiful interface, easy to operate, and has a certain practical value.
Keywords: socket, text chat,file transfer, real-time voice transmission, directsound
一、概述
互联网的迅速发展不仅改变了人们的意识形态,更影响着人们的生活方式,网络元素在不知不觉中渗透到生活的每一个角落。在此过程中,网络交际也成为现代社会人际交往中一种最新、最时尚、最便捷的方式,即时通讯软件成为网民最常用的软件。
作为中国互联网市场已经成为最普及的应用之一,即时通信的未来技术发展和应用创新将受到众多新技术趋势的影响,呈现越来越动态的变化,即时通信和社会化网络、统一通信、在线协同三大技术热点的关系将越来越密切,已经构成重要的融合发展的趋势。在消费者市场,即时通信成为社会化网络中的重要支撑性应用;在企业市场,即时通信的普适化应用对企业重视的统一通信和在线协同已经产生重要的影响。本文按照软件工程的思想和开发步
骤,采用C/S模式,利用SQL Server数据库,使用Visual C++开发工具设计并实现。
二、系统开发技术
2.1模块封装技术
软件系统的各个模块封装成动态链接库(DLL),动态链接库具有非常多的优点,比如可以使得系统使用较少的资源,当多个程序使用同一个函数库时,可以减少在磁盘和物理内存中加载代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在Windows 操作系统上运行的程序,也可以推广模块式体系结构,有助于促进模块式程序的开发,这可以帮助开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序,还可以简化部署和安装,当动态链接库中的函数需要更新或修复时,部署和安装DLL不要求重新建立程序与该DLL的链接。此外,如果多个程序使用同一个DLL,那么多个程序都将从该更新或修复中获益。
系统中使用到的DLL有两种,一种为MFC Regular DLL(MFC规则DLL),另一种为MFC Extension DLL(MFC扩展DLL)。MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环,能被非MFC或MFC编写的应用程序所调用,规则库类似于Win32动态库,MFC扩展DLL 采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用,扩展库可以导出MFC类相关的内容。
2.2 DirectUI界面技术
整个软件的界面采用DirectUI技术,即为直接在父窗口上绘图(Paint on parent dc directly)。子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。DirectUI好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。国外如微软,国内如腾讯,百度等公司的客户端产品多采用这种方式来组织界面,从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。 DirectUI 旨在满足客户端界面快速开发的需要,同时融入业界前沿的皮肤技术,为用户创建更加高效,专业的界面,采用本技术实现的界面换肤效果如图2-1和2-2和2-3所示:
图2-1 系统登录界面
图2-2 换肤前图2-3 换肤后
2.3 ADO数据库访问技术
软件的数据库采用SQL Server数据库,与数据库的连接采用ADO方式,并将对数据库的访问和操作进行二次封装,以方便以后的使用,ADO 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,可以使用ADO 去编写紧凑简明的脚本以便连接到ODBC兼容的数据库和 OLE DB 兼容的数据源,这样开发者就可以访问任何与 ODBC 兼容的数据库,包括SQL Server、Access、 Oracle 等等。
在本系统中,共设计了三个表,一个表为UserInfo表,存储用户信息,一个为Friends