版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号分类号: U D C: 密密 级级: 编编 号号: x x 论论 文文 多功能聊天软件的设计与开发多功能聊天软件的设计与开发 音频音频/视频聊天模块视频聊天模块 论文作者姓名论文作者姓名: 申请学位专业申请学位专业:计算机科学与技术计算机科学与技术 申请学位类别申请学位类别: 指指导导教教师师姓姓名名 (职职称称 ): 论文提交日期论文提交日期: 多功能聊天软件多功能聊天软件的设计与开发的设计与开发 音频音频/视频聊天模块视频聊天模块 摘摘 要要 随着互联网技术的飞速发展,基于网络的即时通信给人们带来诸多便利,也成 为当今网络应用的主流。聊天工具作为当今使用最为广泛的即时通信工具之一,
2、可以方便人们随时随地进行在线交流,比如腾讯公司的 QQ 聊天软件。本毕业设 计就是模拟 QQ 聊天软件,开发一个包括文字聊天、文件传输、语音及视频交流 等功能的聊天软件。 本设计的开发采用 C/S 结构,在基于.NET 开发环境下,使用 C#编程语言进行 本软件的开发。本文首先论述国内外聊天工具的发展情况和现今的发展方向,并 对开发环境和开发语言进行了简单介绍;对本设计所要开发的多功能聊天软件 作了较为详细的需求分析,并给出了多功能聊天软件的设计方案,主要功能包括文 字聊天、文件传输、语音聊天及视频聊天等;本毕业设计主要实现的是多功能 聊天软件的部分功能,即语音聊天、视频聊天等功能,主要实现用
3、户注册、用户登 录、用户之间语音、视频聊天功能;与另一位同学开发实现的文字聊天与文件 传输模块集成在一起,构成一个实用的、功能完善的聊天软件,达到预期目标;通 过运行、测试与分析说明,该多功能聊天软件运行稳定、可靠,具有一定的实用价 值。 关键词关键词:聊天软件;视频聊天;语音聊天;C/S 结构;QQ 聊天软件 Design and Development of the Multi-function Chat SoftwareAudio/Video Chat Module Abstract With the rapid development of Internet technology, t
4、he instant messenger based on network brings many conveniences to the people, also becomes the focus of network application in present. Chat is one of the most widespread instant messengers, may facilitate the people to carry on the online information exchange at anytime and anywhere, such as the QQ
5、 chat software of Tencent Company. This graduation project simulates QQ chat software, develops chat software, which includes the writing, file transfer, audio and video chat and so on. This design development uses the C/S structure, uses the C# programming language to carry on developing this softw
6、are based on .NET environment. This paper first elaborates the development situation of domestic and foreign chats tool and the development direction nowadays, and has carried on the simple introduction to the development environment and the development language. The demand of multi- function chat s
7、oftware is analyzed in detail, and its plan is provided. Its main functions include the writing, file transfer, audio and video chat and etc. This graduation project mainly realizes the partial functions of multi-function chat software, namely the audio chat, the video chat and so on, which mainly r
8、ealizes the user registration, the user login, audio chat and video chat. Finally, this design integrates the functions that another schoolmate designs the writing and file transfer, which forms chat software of practical and full functions. This software achieves the anticipated target. Through the
9、 running, the test and analysis, it shows, this multi- function chat software is stable, reliable, and has some practical values. Key words: Chat Software; Video Chat; Audio Chat; C/S Structure; QQ Chat Software 目目 录录 论文总页数:21 页 1 引言.1 1.1 课题背景.1 1.2 国内外主要聊天工具的发展状况.1 1.3 本课题研究的意义.2 1.4 本文的主要工作.3 2 需
10、求分析及开发工具.3 2.1 需求分析.3 2.2 开发工具.4 2.2.1 C#语言的介绍.4 2.2.2 C/S 结构的介绍.5 2.2.3 开发环境.6 2.2.4 SQL Server 20XX 数据库介绍.7 3 多功能聊天软件的设计方案.8 3.1 聊天系统流程的分析与设计.8 3.2 注册模块的分析与设计.9 3.3 登录模块的分析与设计.9 4 语音、视频聊天模块的具体实现.10 4.1 Video for Windows 简介.10 4.2 G729.dll 的简介.10 4.3 LanMsgLibrary.dll 的简介.11 4.4 语音、视频聊天的模块设计思想.11 4
11、.5 视频聊天与语音聊天模块功能的具体实现.13 5 登录、注册模块功能模块及其它特殊功能模块实现分析.14 5.1 登录模块功能的具体实现.14 5.2 注册模块功能的具体实现.14 5.3 头像闪动功能的具体实现.15 6 系统的综合测试与分析.16 结 论.18 参考文献.19 致 谢.20 声 明.21 第 1 页 共 21 页 1 引言引言 1.1 课题背景课题背景 随着互联网技术的发展,互联网应用越来越丰富。互联网以其独特的传播方 式吸引了大量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互 交流、信息传递等。聊天工具作为互联网中运用最为广泛的通信工具之一,它可 以让用
12、户之间进行即时的交流和信息的传递。聊天工具的出现可以说是基于互 联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信 件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、 易用的信息平台,成为现今应用最为广泛的即时通信工具之一。随着相关技术的 日益发展,用户对功能的需求不断提高。为了更好地服务于用户,聊天工具的功能 也在不断地完善。在未来的网络时代中,聊天工具将以即时通信为其基本特点,并 与各种网络应用整合,同时随着无线网络的广泛应用,它将成为未来不可缺少的一 种通信软件。 1.2 国内外国内外主要主要聊天工具的发展状况聊天工具的发展状况 中国的大部分网络用
13、户都拥有自己的 QQ 号码。腾讯计算机系统有限公司 成立于 1998 年 11 月。1999 年 2 月,腾讯自主开发了基于 Internet 的即时通信网 络工具腾讯即时通信 Tencent Instant Messenger,简称 TIM 或腾讯 QQ。腾讯 QQ 经过三年时间的发展,到 20XX 年,其用户群成为中国最大的互联网注册用户 群,注册用户达到 1 亿 6000 万,其中活跃用户总数超过 5000 万。自此腾讯 QQ 成 为中国最大的即时通信服务提供商。腾讯公司是中国最早也是目前中国市场上 最大的本土互联网即时通信软件开发商。公司成立 7 年多以来,一直以追求卓越 的技术为导向
14、,始终处于稳健、高速发展的状态。腾讯 QQ 超过 4.3 亿的注册用 户群体现了网络用户对腾讯 QQ 这一聊天工具的广泛应用。在当今市场经济高 速发展的前提下,腾讯 QQ 也在不断自我完善,渐渐地演变为一个人性化、市场化 的多功能的聊天工具软件,它可以给网络聊天用户带来越来越多的人性化服务:从 原来单一的文字聊天过渡到集语音、视频、文件传输等多功能于一身的聊天软 件。 ICQ 和 MSN 是在国外比较盛行的即时聊天工具,腾讯 QQ 的开发对 MSN 和 ICQ 都进行了借鉴。ICQ 是 I Seek You(我找你)的缩写,最初是一家以色列公 司开发出来的免费软件,中文名称目前可以称之为“网络
15、呼叫器”,它在全球拥有超 过 4000 万的用户。事实上这种软件最主要的功能就是让用户知道网络上的朋友 现在有没有上线(前提是对方也有安装 ICQ),然后可以互送 Messages(消息)交谈 或是交换档案等等,比电子邮件更具即时性。正如一位 ICQ 软件的最初程序设计 第 2 页 共 21 页 员所说:“当你登录因特网之后,你周围都是些自己熟悉的人,而且,你还可以和他们 分享这种体验,这的确是一件令人激动的事情。 ” MSN 是微软推出的聊天软件,是一套类似 ICQ 的网上即时通讯软件,它以最 简单的方式为用户提供强有力的即时消息支持,同时能使 Microsoft Outlook Expre
16、ss(R) 和 MSN Hotmail(R)变得更简单易用。MSN Messenger Service 还可 使用户间的联机交谈变得更加轻松愉快,了解谁在联机以及查看用户何时联机并 与其交换即时消息。用户间可以进行单独的聊天,或者在同一个对话窗口中与多 达四个的联系人进行聊天。自动的输入指示器可让用户知道何时联系人正在输 入答复,还可以进行全球 TEL 呼叫以非常低的费用呼叫世界的任何地方。用 户可以选择所要使用的 TEL 服务提供商,从服务提供商的列表中选择最适合的提 供商。用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各 地的朋友进行交谈,甚至可以呼叫联系人将文本消息发送到
17、联系人的移动 TEL 和 传呼机上(注:此特性仅适用于美国和加拿大),而进入“聊天室”结识新朋友,或加入 与名人聊天,此特性在所有地区都适用。用户可以使用 MSN Messenger 与朋友 交换照片、喜爱的音乐或任何其他文件,也可以监视新的电子邮件并查看用户有 多少新的电子邮件。MSN Messenger 能在收到新的 Hotmail 邮件时通知用户,还 能邀请联系人进行联机 DirectPlay 兼容游戏。 1.3 本课题研究的意义本课题研究的意义 在当今信息时代,信息通信已成为这个世纪必不可少的组成部分,随着互联网 技术的发展,聊天软件作为即时性通信工具的主流,已被越来越多的人所喜爱。在
18、 中国,上网的用户几乎都用腾讯 QQ 进行聊天。当前腾讯 QQ 的注册帐户已经超 过 4.3 亿,是中国用户最多、最为流行的聊天工具。起初的 QQ 只支持文字聊天, 随着相关技术的发展,腾讯 QQ 也不断的自我完善,增加众多实用的、人性化的功 能,得到了许多用户的支持与喜爱。现如今腾讯公司已经初步完成了面向在线生 活产业模式的业务布局:构建了 QQ、QQ.com、QQ 游戏以及 QQ 移动手机门户 这四大网络平台,形成了规模巨大的网络社区。在满足用户信息传递与知识获取 需求方面,拥有 QQ.Com 门户、QQ 即时通讯工具以及年初收购的 Foxmail 电子 邮件等;在满足用户群体交流和资源共
19、享方面,腾讯推出的个人博客 Q-Zone 将 与访问量极大的论坛、聊天室、QQ 群相互协同;在满足用户个性展示和娱乐 服务方面,腾讯拥有非常成功的虚拟形象产品 QQshow、QQpet(宠物)和 QQGame(游戏)QQMusic/Radio/LiveTV(音乐/电台/电视直播)等,另外对手机用户 提供了彩铃、彩信等无线增值业务;在用户的交易需求方面,专门为腾讯用户设 计开发的 C2C 电子商务拍卖网已经上线,并和整个社区平台无缝整合。像 QQ 这 样聊天工具已经逐渐适应了时代的发展,市场的需求,给人们提供了全方位的信息 第 3 页 共 21 页 服务平台,使用户在互联网上的生活更加丰富多彩,
20、它不仅带来了巨大的商业价值,而 且也给人们的生活带来了无比的欢乐与便利。 1.4 本文的主要工作本文的主要工作 随着用户对软件功能的需求不断提高,即时通讯的产品也不断地更新换代。 即时通讯的发展不论是在基础应用方面还是在扩展应用方面都有着飞跃。为了 满足用户的需求,包括腾讯公司的聊天软件 QQ 在内,许多即时性聊天工具都推出 了语音聊天、视频聊天功能模块。本文主要对聊天软件的语音聊天和视频聊天 等相关功能的实现原理进行了研究。 本文首先对聊天软件的发展以及其对人们的生活有何影响作了简述,并对开 发环境和工具进行了相应说明并对此聊天软件系统进行了较为详细的分析;进 而提出了该多功能聊天软件的设计
21、方案。在本次多功能聊天软件的设计与开发 中,本人主要负责设计开发登录模块、注册模块、语音聊天模块、视频聊天模块, 并对此聊天软件系统的登录模块、注册模块、语音聊天、视频聊天模块的设计 与实现进行了较详细的说明和分析。 2 需求分析及开发工具需求分析及开发工具 2.1 需求分析需求分析 此聊天软件系统是模拟现今国内最为流行的即时性通讯工具 QQ 而设计的, 能够实现注册、登录、添加好友、文字聊天、文件传输、语音聊天、视频聊天 等功能。该聊天软件系统是采用 C/S 结构,即客户端与服务器端的结构体系。基 于对该聊天软件功能的分析,本文分别对客户端与服务器端进行了设计。 该聊天软件服务器端的功能是实
22、现对客户端提交的用户信息进行处理。服 务器设计内容包含:信息接收、注册、登录、刷新、更新、添加好友等。 “信息 接收”是提供服务器接受客户端发送信息的功能;“注册”是服务器端接受到 用户的注册信息请求后,将请求信息写入到数据库,为用户的注册提了相关服务; “登录”是服务器通过验证登录信息来实现相关的服务;“刷新”是对服务器 的更新数据每过一段时间进行一次刷新,来显示用户当前在服务器的信息状况,如 在线状态等;“更新”是服务器对用户在数据库中信息进行相关的操作;“用 户退出处理”是服务器在用户退出聊天系统后作出的相关处理工作;“好友添 加”是服务器对添加的好友信息进行处理等相关操作。 客户端即用
23、户使用的应用程序端。用户通过该聊天软件的客户端来实现网 上聊天的相关功能:注册、登录、添加好友、文字聊天、文件传输、语音聊天、 视频聊天等。注册功能是提交用户相关信息以及获得一个属于自己登录该聊天 软件系统的用户 ID 号;登录功能是实现验证用户信息与合法使用该聊天软件系 第 4 页 共 21 页 统的权限;添加好友是实现用户之间好友添加的操作;添加好友成功后,就可以 与好友之间开始文字聊天、文件传输、语音聊天、视频聊天等功能。 (1)该服务器的运行环境: 操作系统:windows20XX 或 windows20XX; 内存:256M 以上(最低为 256M); CPU:Intel(R) Ce
24、leron(R) 2.0GHz 或 AMD 1800+以上均可; 其它:Microsoft .NET Framework SDK。 (2)客户端的运行环境: 操作系统:windows XP 或 windows20XX 等; 内存:256M 以上(最低为 256M); CPU:Intel(R) Celeron(R) 2.0GHz 或 AMD 1800+以上均可; 摄像头、耳机等外部设备。 第一次使用系统的用户通过填写个人信息来注册,服务器返回一个注册 ID 号给注册用户,用来登录。已经注册的用户在登录界面填写完相关登录信息,通过 服务器的验证后就可以进入客户端界面。在线用户在添加好友时可以查看所
25、要 添加用户的列表信息。当对要添加的好友发送请求添加的信息后,由该好友验证 是否通过请求,同意后会向请求方发送同意添加的消息。当请求方添加完成后,服 务器端会把相关信息存入到好友表的数据库中。完成以上操作以后,两人即可进 行在线聊天。 2.2 开发工具开发工具 2.2.1 C#语言的介绍语言的介绍 C#(Csharp)是一种最新的、面向对象的编程语言,它使得程序员可以快速地 编写各种基于 Microsoft .NET 平台的应用程序。Microsoft .NET 提供了一系列的 工具和服务来最大程度地开发、利用计算与通讯领域。C#面向对象的卓越设计 使它成为构建各类组件的理想之选无论是高级的商
26、业对象还是系统级的应 用程序。使用简单的 C#语言结构,这些组件可以方便的转化为 XML 网络服务, 从而使它们可以由任何语言在任何操作系统上通过 Internet 进行调用。最重要的 是,C#使得 C+程序员可以高效率地开发程序,而绝不损失 C/C+原有的强大功 能。因为这种继承关系,C#与 C/C+具有极大的相似性,熟悉类似语言的开发者 可以很快地转向 C#。 C#语言是允许类型定义、扩展的元数据,这些元数据可以应用于任何对象。 项目构建者可以定义领域特有的属性并把他们应用于任何语言元素类、接口等 等。然后,开发人员可以编程检查每个元素的属性。这样,很多工作都变得更加方 便:譬如编写一个小
27、工具来自动检查每个类或接口是否被正确定义为某个抽象商 第 5 页 共 21 页 业对象的一部分,或者只是创建一份基于对象的领域特有属性的报表。定制的元 数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现的之间 的对应关系。 在 C#中,每个对象都自动生成为一个 COM 对象。开发者不再需要显式的实 现 IUnknown 和其他 COM 接口这些功能都是内置的、类似的,C#可以调用现 有的 COM 对象,无论它是由什么语言编写的。C#包含了一个特殊的功能:使程序 可以调用任何纯 API。在一段特别标记的代码中,开发者可以使用指针和传统 C/C+特性,如手工的内存管理和指针运算。这是其
28、相对于其它环境的极大优势。 这意味着 C#程序员可以在原有的 C/C+代码的基础上编写程序,而不是彻底放 弃那些代码 2.2.2 C/S 结构的介绍结构的介绍 C/S(client/server)结构,即被广为熟知和使用的客户机和服务器结构。它是软 件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 client 端和 server 端来实现,降低了系统的通讯开销。目前大多数应用软件系统 都是 client/server 形式的两层结构,由于现在的软件应用系统正在向分布式的 web 应用发展,web 和 client/server 应用都可以进行同样的业务处理,应用不同的模
29、块 共享逻辑组件;因此,内部用户和外部用户都可以访问新的和现有的应用系统,通 过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的 发展方向。传统的 c/s 体系结构虽然采用的是开放模式,但这只是系统开发一级 的开放性,在特定的应用中无论是 client 端还是 server 端都还需要特定的软件支 持。由于没能提供用户真正期望的开放环境,c/s 结构的软件需要针对不同的操作 系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以 上局域网用户同时使用。而且代价高,效率低。 C/S 架构软件的优势与劣势: (1)应用服务器运行数据负荷较轻。最简单的 c/s 体
30、系结构的数据库应用由 两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与 后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序 被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的 电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任 何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据 预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。 (2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能, 是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且 第 6
31、页 共 21 页 通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实 现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所 有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也 无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前 台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在 c/s 体系的下, 数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。 (3)c/s 架构的劣势是高昂的维护成本且投资大。首先,采用 c/s 架构,要选择 适当的数据库平台来实现数据库数据的真正“统一”,使分布
32、于两地的数据同步完 全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能 有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建 立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对 服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维 护成本很高,维护任务量大。 2.2.3 开发环境开发环境 微软发布了.NET 开发平台,这是自 1993 年 7 月随着 Windows NT3.0 出现的 Win32 API 后微软软件开发平台的第一次大升级。比起 Win16 来,Win32 提供了 更多功能强大的 API,但
33、没有对工具和技术进行引人注目的改变。与之不同的是, .NET 开发平台在开发者用以创造应用程序的工具和技术上做了根本的改变。 .NET 开发平台使得开发者创建运行在 Internet Information Server (IIS)(互联网信 息服务器)Web 服务器上的 Web 应用程序更为容易,它也使创建稳定、可靠而又 安全的 Windows 桌面应用程序更为容易。 .NET 开发平台包括以下内容: (1).NET Framework(架构),包括:Common Language Runtime(CLR)(通用语言 运行环境),这是用于运行和加载应用程序的软件组件;新的类库,分级组织了开
34、发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及 在 Web 上通信的代码集。 (2).NET 开发者工具,包括:Visual Studio .NET Integrated Development Environment(IDE)(Visual Studio .NET 集成开发环境),用来开发和测试应用程序。 (3).NET 编程语言(例如 Visual Basic .NET 和新的 Visual C#),用来创建运行 在 CLR 下并且使用类库的应用程序。 (4)ASP .NET,一个取代以前的 Active Server Pages(ASP)的特殊类库,用来创 建动态的
35、 Web 内容和 Web 服务器应用程序,这些都将采用诸如 HTML、XML 第 7 页 共 21 页 和 Simple Object Access Protocol(SOAP)(简单对象访问协议)等 Internet 协议和数 据格式。 .NET 开发平台是一组用于建立 Web 服务器应用程序和 Windows 桌面应用 程序的软件组件,用该平台创建的应用程序在 Common Language Runtime(CLR) (通用语言运行环境)(底层)的控制下运行。CLR 是一个软件引擎,用来加载应用 程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然 后在运行完成后将它
36、们清除。 类库集提供了使应用程序可以读写 XML 数据、在 Internet 上通信、访问数 据库等的代码。所有的类库都建立在一个基础的类库之上,它提供管理使用最为 频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层 功能。 Web 服务器应用程序通常依赖于 ASP.NET,一个处理 Web 请求的服务器端 的库。ASP.NET 又依赖一个用于发送和接收 SOAP 信息的 Web Services 库,以及 一个用于以浏览器接收用户输入并动态地生成 Web 页面以示响应的 Web 用户 接口(UI)(有时称作 Web 表单)。Windows 桌面应用程序通过使用 Win
37、 表单库 (也称作 Windows 表单)可以显示一个图形 UI。 最后,Visual Studio .NET 提供了一个用于在该平台上创建应用程序的图形 Integrated Development Ewironment(IDE)(集成开发环境)。程序员可以使用一种 或多种.NET 编程语言,来编写他们的代码,例如微软自己的 Visual Basic .NET(VB.NET),Visual C+, Visual C#和 JScrjpt .NET 等。大量其它的.NET 编程 语言可以从第三方厂商获得。 2.2.4 SQL Server 20XX 数据库介绍数据库介绍 MicrosoftSQL
38、Server20XX 是一个分布式的关系型数据库管理系统,具有客户 机/服务器体系结构,采用了 Transact-sql 的 sql 语言在客户机与服务器间传递客 户机的请求与服务器的处理结果。众所周知,SQLServer20XX 能够满足今天的商 业环境要求不同类型的数据库解决方案。它一种应用广泛的数据库管理系统,具 有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据 仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、 可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。除这些核心企业品 质外,SQLServer20XX 还为您的数据管理与分析带来了
39、灵活性,允许单位在快速 变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数 据转化为商业智能和充分利用 Web 带来的机会非常重要。作为一个完备的数据 库和数据分析包,SQLServer20XX 为快速开发新一代企业级商业应用程序、为企 第 8 页 共 21 页 业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖 的记录保持者,SQLServer20XX 是一个具备完全 Web 支持的数据库产品,提供了 对可扩展标记语言(XML)的核心支持以及在 Internet 上和防火墙外进行查询的能 力。 3 多功能聊天软件的设计方案多功能聊天软件的设计方案 3.
40、1 聊天系统流程的分析与设计聊天系统流程的分析与设计 图 1 系统流程图 此聊天软件采用了 C/S 结构,其系统流程图如图 1 所示,使用这个聊天系统软 件的用户必须先进行注册。用户首先选择注册选项,填写相关的注册信息,然后通 过网络提交给服务器,再由服务器将注册信息提交给数据库。同时服务器会按顺 序生成一个登录 ID 号返回给注册用户,这样注册就完成了。完成注册的用户可 以用返回的 ID 号和自己注册时填写的密码进行登录。用户将登录信息提交给服 务器,服务器根据数据库中的注册信息与登录信息进行比较,比较一致后,则进入 系统的客户端应用程序模块。这时你要与好友进行聊天,则必须添加好友:进行用
41、户 2 添加用户 N 为好友的操作过程中,用户 2 首先向用户 N 发出添加好友的请 求信息,当用户 N 接受到用户 2 的信息,在通过验证后会发送确认反馈信息给用 户 2,并且向服务器提交好友添加确认信息,这时服务器就会更新相应用户的好友 列表中的信息。好友添加完成后,用户之间就可以进行彼此之间的通信,如文字聊 天、视频聊天、语音聊天、文件传输等。 以上为多功能聊天软件系统的总体流程图,其中包括了登录模块、注册模块、 第 9 页 共 21 页 添加好友模块、服务器模块、数据库模块等。在这个多功能聊天软件系统开发 设计与实现中,本人主要负责登录模块、注册模块、语音聊天与视聊天功能模块 的设计与
42、实现。下面就对登录模块与注册模块的流程进行了分析。 3.2 注册模块的分析注册模块的分析与设计与设计 用户通过填写注册相关的信息并将其提交给服务器,服务器将用户填写的相 关信息存入的数据库中去,同时在按顺序自动生成一个 ID 号,发给注册用户,表明 注册成功,此 ID 号就为用户登录帐号。图 2 所示为其系统结构图。 图 2 注册系统 3.3 登录模块的分析与设计登录模块的分析与设计 图 3 登录系统 用户在注册获得 ID 号码后,在登录界面填写 ID 号码和密码并提交给服务器, 服务器通过用户提交过来的信息和数据库中原有的用户信息进行比较和验证,如 果结果一致表明验证成功,用户进入到客户端的
43、系统界面下,如果不一致,给用户 第 10 页 共 21 页 返回登录错误信息。登录系统流程分析图 3 所示。 本设计主要完成的是视频聊天、语音聊天模块,以及登录、注册模块,下面对 其设计与实现进行详细的说明。 4 语音、视频聊天模块的具体实现语音、视频聊天模块的具体实现 4.1 Video for Windows 简介简介 VFW 是 Microsoft 1992 年推出的关于数字视频的一个软件包,它能使应用程 序数字化并播放从传统模拟视频源得到的视频剪辑。VFW 的一个关键思想是播 放时不需要专用硬件,为了解决数字视频数据量大的问题,需要对数据进行压缩。 它引进了一种叫 AVI 的文件标准,
44、该标准未规定如何对视频进行捕获、压缩及播 放,仅规定视频和音频该如何存储在硬盘上,在 AVI 文件中交替存储视频帧和与 之相匹配的音频数据。VFW 给程序员提供.VBX 和 AVICap 窗口类的高级编程 工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。现在 用户不必专门安装 VFW 了,Windows95 本身包括了 Video for Windows1.1,当用 户在安装 Windows 时,安装程序会自动地安装配置视频所需的组件,如设备驱动 程序、视频压缩程序等。VFW 主要由以下六个模块组成: (1)AVICAP.DLL:包含了执行视频捕获的函数,它给 AVI 文件
45、I/O 和视频、 音频设备驱动程序提供一个高级接口。 (2)MSVIDEO.DLL:用一套特殊的 DrawDib 函数来处理屏幕上的视频操作。 (3)MCIAVI.DRV:此驱动程序包括对 VFW 的 MCI 命令的解释器。 (4)AVIFILE.DLL:支持由标准多媒体 I/O(mmio)函数提供的更高的命令来访 问.AVI 文件。 (5)压缩管理器(ICM):管理用于视频压缩解压缩的编解码器(CODEC)。 (6)音频压缩管理器 ACM:提供与 ICM 相似的服务,不同的是它适于波形音频。 4.2 G729.dll 的简介的简介 G.729 算法是 ITU-T 制定的编码速率为 8kb/s
46、 的共轭结构码激励线性预测声 码器语音编码算法标准,作为低速率的语音编码器,在传输的带宽有限的情况下运 用越来越受到广泛的重视。G.729 系列算法声码器的原理都是相通的,各种算法 不同之处在于算法的简化和编码比特的多少。G.729 编码器是基于码激励线性 预测(CELP)声码器模型的。这个编码器运算的帧长为 10ms,相应于抽样率为 8000kHz 的语音数据流的 80 个样值,具有 8kbit/s 的编码速率,较低的延迟和高编 码语音质量等优点。 本程序在语音聊天模块中,调用了 G729.dll 动态链接库文件,它包括 G.729 的 第 11 页 共 21 页 函数和资源,是一种可执行文
47、件,它允许程序共享执行特殊任务所必需的代码和其 他资源。 4.3 LanMsgLibrary.dll 的简介的简介 该聊天软件系统的语音聊天、视频聊天功能的实现主要是引用了 LanMsgLibrary.dll 这个动态链接库文件,它包括 VFW 以及其他相关的函数与资 源。在音频与视频聊天实现的过程中,程序就引用了 LanMsgLibrary.dll 中的 VFW 以及相关的函数和资源。在视频聊天过程中,主要实现了视频的捕获与播 放,视频流的压缩与解压。在语音聊天过程中,主要实现了声音的采集与播放,通 过调用了 G729.dll 动态链接库文件,对音频进行了压缩与解压。 在整个语音聊天与视频聊
48、天实现的过程中,程序主要对 LanMsgLibrary.dll 的 引用来实现其功能。 4.4 语音、视频聊天的模块设计思想语音、视频聊天的模块设计思想 对于一个端对端的语音聊天系统来说,主要涉及两个方面的动作,即语音的采 集和播放、语音数据的发送和接收。系统采用多线程的设计思想来完成并协调 各个过程。语音的采集实际上就是一个音频压缩的过程。语音的播放是声音数 据流的还原过程,通过一个父线程读取接收线程接收到的数据,并通过管道让其子 线程播放解压后的声音数据。语音数据的发送和接收主要用 Socket 编程来实现, socket 是网络通讯过程中端点的抽象表示。为了通过 socket 接口进行网
49、络通讯, 程序在对话的每一端都需要一个 socket,两个 socket 采用无连接的 UDP 协议。 用户 1 通过麦克对自己的声音进行采集,在通过压缩,使其在网络上传输的效 率更高,然后再进行传输,当用户 2 接收到用户 1 的声音数据后将其解压,然后进 行播放,如图 4 所示。 图 4 语音模块数据流程图 在进行语音聊天时,两台计算机必须先要建立连接,如图 5 所示,用户 1 向用 户 2 发送“发送语音请求”信息,用户 2 收到用户 1 请求信息后,发送回应信息给 用户 1,如果用户 2 同意,开始语音聊天;不同意,停止语音聊天。 第 12 页 共 21 页 图 5 语音聊天建立连接图
50、 此视频模块的设计思想与语音模块一致,也涉及到两个方面的动作,视频的采 集和播放,视频数据的发送和接收。视频的采集与播放是基于 VFW 来实现的,利 用 VFW 的关于数字视频的软件包实现对视频的采集与播放。视频数据的发送 与接收同样采用了 Socket 编程,在发送视频时,通过 Socket 端口进行监听。当收 到对方发送的包含视频请求信息和对方 IPAdress、端口号等信息后,如果同意请 求,则向请求方发送包含了本地 IP、端口号的接受视频信息,这样就建立了连接, 开始视频聊天。 用户 1 通过摄像头进行视频采集,经过压缩后,向用户 2 发送采集后的视频数 据。用户 2 接收到用户 1
51、发送的视频数据并将其进行解压,然后在用户 2 的采集 窗口上播放,这样视频的传输就完成了。视频模块数据传输流程如图 6 所示。 图 6 视频模块数据传输流程图 在进行视频数据传输前,两台计算机必须先要建立连接,其原理和语音聊天建 立连接的原理一致。用户 1 向用户 2 发送视频请求,用户 2 在接收到用户 1 的请 求后,给用户 1 发送收到请求后的回应信息,如果同意用户 1 的请求则用户 1 与用 户 2 开始视频聊天,如果不同意就终止视频聊天。视频聊天建立连接如图 7 所示。 第 13 页 共 21 页 图 7 视频聊天建立连接图 4.5 视频聊天与语音聊天模块功能的具体实现视频聊天与语音
52、聊天模块功能的具体实现 聊天软件所包含的视频聊天和语音聊天功能的实现,满足了用户对聊天软件 的需求,使聊天软件的功能更加人性化。 当用户通过登陆进入到聊天软件客户端的主程序后,通过程序 udpThread = new Thread(new ThreadStart(UdpReceiveMsg);udpThread.Start()开辟并启用了 udp 的线程,而且调用了 UDP 的 UdpReceiveMsg()的接收函数,用来接收数据,通 过程序 videoThread= new Thread(new ThreadStart(video);videoThread.Start()开 辟并启用了视频
53、线程,专门用来好友之间的视频、语音聊天,此线程调用了 videoSocket.Listen(20XX)函数用来对 20XX 端口进行监听。当用户 1 和用户 2 之间要进行视频、语音聊天时,用户 1 双击用户 2 头像进入与用户 2 的视频对话 框中,点击“请求视频”按钮后,来激发 bt_video_Click(object sender, EventArgs e) 事件的发生,此事件中包含了 ReadyConnect(remoteIP, 20XX, new ClassMsg(RSC, my_id.ToString() , null)函数,这个函数的功能是将带有自己 ID 号、RSC的控制字符
54、的信息通过端口 20XX 中发送到用户 2 的主机。这时用 户 2 的客户端程序对 20XX 端口进行了监听,将用户 1 的信息交给 DataArrival(byte Data, System.Net.IPAddress Ip, int Port)函数处理,此时通过选择 语句来判断执行程序,用户 1 发送给用户 2 的控制字符为RSC,则系统弹出“用 户 1 请求与你视频聊天”的对话框提示信息给用户 2,用户 2 如果同意与用户 1 进行视频聊天,则用户 2 点击接收视频按钮,来触发 button1_Click(object sender, EventArgs e)事件,来对视频设备和音频设备
55、等进行初始化,并通过 this.AV.BeginAV(newLanMsg.ClassSerializers().SerializeBinary(newClassMsg(BV S, my_id.ToString() , null).ToArray(), remoteIP, 20XX)函数告诉用户 1 可以开始 视频聊天了,用户 1 通过对端口 20XX 的监听,会根据接收到用户 2 发来的BVS 控制字符来执行相应的程序,这触发了 this.myVideoEvent += new MyFileEvent(video_connection)事件,调用 video_connection(object
56、 sender)函数进行 第 14 页 共 21 页 视频、语音聊天连接的建立,在这个函数中调用 Connect(string ip, int port)函数,用 户 1 就可以与用户 2 建立连接,并且开始进行视频、语音聊天。要结束用户 1 与 用户 2 之间的视频、语音聊天,可以单击“取消视频”按钮,从而激发 button2_Click(object sender, EventArgs e)事件,如果当前处于视频、语音聊天的状 态,就会调用停止视频、语音聊天事件,并且向对方发送提示信息,同时释放资源。 如果用户 2 接收到用户 1 的请求信息,却不想与用户 1 进行视频、语音聊天,直接 点
57、击“取消视频”按钮触发该事件即可,将拒绝信息用函数 udpSocketSend.SendTo(Bsendinfo, remoteEP)发送给用户 1。以上就是语音视频实 现的大概过程。 5 登录、注册模块功能模块及其它特殊功能模块实现分析登录、注册模块功能模块及其它特殊功能模块实现分析 5.1 登录模块功能的具体实现登录模块功能的具体实现 登录模块是用户身份的验证模块,该聊天软件系统通过服务器对用户输入的 密码和用户 ID 与注册时的用户 ID 和密码进行比较,来进行对用户身份的验证,看 用户是否有权限使用该聊天软件。 登录模块实现的具体步骤是首先在程序开辟一个单线程的程序入口点,在客 户端主
58、函数运行时,程序调用 Client_Load(object sender, System.EventArgs e)函数, 将界面显示为登录界面,进行登录操作。当用户在登录界面填写完用户 ID 与密 码时,单击登录按钮,此时调用 button3_Click(object sender, System.EventArgs e)事 件,通过 tcpc.Connect(ip,port)函数与服务器连接,并进行异常处理。如果连接失败, 提示错误信息;如果连接成功,通过调用 SendMsg(NetworkStream ns)函数将登录 信息发送到服务器端来进行相关验证,当客户端接收到从服务器发送的 tem
59、p=ACC信息后,会显示一个窗体说明登录成功,点击“完成”按钮就完成登 录操作,进入到用户客户端模式下。如果从服务器端发送的信息为 temp=UAC,表 明登录失败并弹出一个提示错误信息窗体。单击取消按钮会调用 button4_Click(object sender, System.EventArgs e)事件来关闭窗体以及客户端程序。 5.2 注册模块功能的具体实现注册模块功能的具体实现 注册模块的功能是可以让用户获得使用该聊天软件系统的权限,用户可以通 过注册来获得登录时的用户 ID 号。双击应用程序进入登录界面后,没有注册的 用户可以点击登录界面的“帐号申请”按钮,这时程序就调用 but
60、ton1_Click(object sender, EventArgs e)事件,进入到注册模块界面。然后填写相 关的注册信息,单击确定按钮,调用 button1_Click(object sender, EventArgs e)事件, 先对填写的信息进行判断,看是否有误,如果有误就显示错误提示信息;如果填写 第 15 页 共 21 页 信息正确,就通过 tcpc.Connect(serverip , port)函数对服务器进行连接,并进行异常 处理。连接不成功时,会提示错误信息;如果连接成功,注册信息会通过服务器写 入数据库中。这时服务器就返回一个用户 ID 号码,触发 this.MyIDC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湘教版福建省莆田市五校联盟2023-2024学年高二上学期期中数学试题
- 2024年上海市中考语文真题卷及答案解析
- 华支睾吸虫课件
- 幼儿园小班音乐《表情歌》课件
- 福建省尤溪一中 2024-2025学年高三上学年半期考地理试卷及答案
- 西京学院《大数据技术原理及应用》2022-2023学年期末试卷
- 简爱课件 图片
- 西华师范大学《外贸函电》2023-2024学年期末试卷
- 西华师范大学《数据库原理及应用》2022-2023学年期末试卷
- 职业技术学院移动商务学情分析报告
- 销售大户监管办法
- 小型装配式冷库设计(全套图纸)
- 西师版小学数学二年级上册半期考试
- 八六版高中英语课文全集
- 审计工作手册
- 胰腺癌一病一品知识分享
- 【原创】《基于地理实践力培养的校本课程开发研究》中期报告
- 公司下属厂部推行5S管理通知
- (最新)13《金税三期工程运维架构设计方案》V10
- 青岛版4年级上册相遇问题说课
- 机械加工企业安全生产事故应急预案(完整版)
评论
0/150
提交评论