仿QQ即时通讯应用软件开发毕业设计
仿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
目录
摘要 (12)
Abstract (13)
第一章绪论 (14)
1.1选题的目的和意义 (14)
1.2项目概述 (14)
1.3国内外研究情况 (14)
1.4 本文组织结构 (17)什么鱼好养
潮汕美食第二章需求分析 (18)
暗黑圣骑士加点2.1 可行性分析 (18)
2.3 系统性能需求 (19)
2.4 系统运行环境需求 (19)
第二章登陆模块 (20)
2.1 动态链接库 (20)
2.2 ADO数据库编程 (20)
2.3 登陆模块的设计与实现 (30)
2.3.1 登陆界面 (30)
2.3.2 登陆模块数据库设计 (30)
2.3.3 登陆模块核心代码 (31)
2.3.4 登陆模块核心代码分析 (35)
第3章主窗口模块 (36)
3.1 主窗口界面 (36)
3.1.1 主窗口创建流程图 (36)
3.1.2 创建主窗口核心代码: (37)
3.2 文字聊天 (40)
3.2.1 文字聊天界面 (40)
3.2.2 文字聊天实现原理 (41)
3.3 文件传输 (44)
3.3.1 文件传输效果图 (44)
3.3.2 文件传输原理 (45)
高考成绩出来了吗3.3.3 文件传输核心代码 (46)
3.4 语音聊天 (48)
3.4.1 DirectSound技术简介 (48)
3.4.2 DirectSound工作原理 (49)
3.4.3 DirectSound声音回放 (49)
3.4.4 DirectSound声音捕获 (50)
3.4.5 录音功能封装类 (51)
3.4.6 声音捕获实现代码分析 (52)
3.4.7 播放声音封装类 (55)
3.4.8 声音播放实现代码分析 (56)
表,存储好友,一个为Groups表,存储组信息,具体数据表字段如下表所示:(1)UserInfo表字段信息如表2-1所示:
表2-1 UserInfo表
(2)Friends表字段信息如表2-2所示:
表2-2 Friends表
(3)Groups表字段信息如表2-3所示:
表2-3 Groups表
2.4 网络传输技术
在文字聊天部分,本软件采用了基于UDP传输协议的实现,相比TCP来说,UDP有以下优点:UDP基于无连接的协议,速度比TCP更快。对于强调传输性能而不是传输完整性的应用(例如音频和多媒体
应用),UDP是最好的选择;UDP不但支持一对一连接,而且也支持一对多连接,可以使用广播的方式多地址发送,而TCP仅支持一对一的通信;UDP与TCP的报头比是8:20,这使得UDP消耗的网络带宽更少;UDP传输的数据有消息边界,而TCP没有消息边界。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。