多功能聊天软件的设计与开发-音频视频聊天模块论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多功能聊天软件的设计与开发
——音频/视频聊天模块
摘要
随着互联网技术的飞速发展,基于网络的即时通信给人们带来诸多便利,也成为当今网络应用的主流。
聊天工具作为当今使用最为广泛的即时通信工具之一,可以方便人们随时随地进行在线交流,比如腾讯公司的QQ聊天软件。
本毕业设计就是模拟QQ聊天软件,开发一个包括文字聊天、文件传输、语音及视频交流等功能的聊天软件。
本设计的开发采用C/S结构,在基于.NET开发环境下,使用C#编程语言进行本软件的开发。
本文首先论述国内外聊天工具的发展情况和现今的发展方向,并对开发环境和开发语言进行了简单介绍;对本设计所要开发的多功能聊天软件作了较为详细的需求分析,并给出了多功能聊天软件的设计方案,主要功能包括文字聊天、文件传输、语音聊天及视频聊天等;本毕业设计主要实现的是多功能聊天软件的部分功能,即语音聊天、视频聊天等功能,主要实现用户注册、用户登录、用户之间语音、视频聊天功能;与另一位同学开发实现的文字聊天与文件传输模块集成在一起,构成一个实用的、功能完善的聊天软件,达到预期目标;通过运行、测试与分析说明,该多功能聊天软件运行稳定、可靠,具有一定的实用价值。
关键词:聊天软件;视频聊天;语音聊天;C/S结构;QQ聊天软件
Design and Development of the Multi-function Chat
Software——Audio/Video Chat Module
Abstract
With the rapid development of Internet technology, the 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 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 software 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 software is analyzed in detail, and its plan is provided. It’s 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 realizes 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 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 需求分析及开发工具 (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 2000数据库介绍 (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.5视频聊天与语音聊天模块功能的具体实现 (13)
5 登录、注册模块功能模块及其它特殊功能模块实现分析 (14)
5.1登录模块功能的具体实现 (14)
5.2注册模块功能的具体实现 (14)
5.3头像闪动功能的具体实现 (15)
6 系统的综合测试与分析 (16)
结论 (18)
参考文献 (19)
致谢 (20)
声明 (21)
1 引言
1.1 课题背景
随着互联网技术的发展,互联网应用越来越丰富。
互联网以其独特的传播方式吸引了大量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互交流、信息传递等。
聊天工具作为互联网中运用最为广泛的通信工具之一,它可以让用户之间进行即时的交流和信息的传递。
聊天工具的出现可以说是基于互联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、易用的信息平台,成为现今应用最为广泛的即时通信工具之一。
随着相关技术的日益发展,用户对功能的需求不断提高。
为了更好地服务于用户,聊天工具的功能也在不断地完善。
在未来的网络时代中,聊天工具将以即时通信为其基本特点,并与各种网络应用整合,同时随着无线网络的广泛应用,它将成为未来不可缺少的一种通信软件。
1.2 国内外主要聊天工具的发展状况
中国的大部分网络用户都拥有自己的QQ号码。
腾讯计算机系统有限公司成立于1998年11月。
1999年2月,腾讯自主开发了基于Internet的即时通信网络工具——腾讯即时通信Tencent Instant Messenger,简称TIM或腾讯QQ。
腾讯QQ经过三年时间的发展,到2002年,其用户群成为中国最大的互联网注册用户群,注册用户达到1亿6000万,其中活跃用户总数超过5000万。
自此腾讯QQ成为中国最大的即时通信服务提供商。
腾讯公司是中国最早也是目前中国市场上最大的本土互联网即时通信软件开发商。
公司成立7年多以来,一直以追求卓越的技术为导向,始终处于稳健、高速发展的状态。
腾讯QQ超过4.3亿的注册用户群体现了网络用户对腾讯QQ这一聊天工具的广泛应用。
在当今市场经济高速发展的前提下,腾讯QQ也在不断自我完善,渐渐地演变为一个人性化、市场化的多功能的聊天工具软件,它可以给网络聊天用户带来越来越多的人性化服务:从原来单一的文字聊天过渡到集语音、视频、文件传输等多功能于一身的聊天软件。
ICQ和MSN是在国外比较盛行的即时聊天工具,腾讯QQ的开发对MSN 和ICQ都进行了借鉴。
ICQ是I Seek You(我找你)的缩写,最初是一家以色列公司开发出来的免费软件,中文名称目前可以称之为“网络呼叫器”,它在全球拥有超过4000万的用户。
事实上这种软件最主要的功能就是让用户知道网络上的朋友现在有没有上线(前提是对方也有安装ICQ),然后可以互送Messages(消息)交谈或是交换档案等等,比电子邮件更具即时性。
正如一位ICQ软件的最
初程序设计员所说:“当你登录因特网之后,你周围都是些自己熟悉的人,而且,你还可以和他们分享这种体验,这的确是一件令人激动的事情。
”
MSN是微软推出的聊天软件,是一套类似ICQ的网上即时通讯软件,它以最简单的方式为用户提供强有力的即时消息支持,同时能使Microsoft Outlook Express(R) 和MSN Hotmail(R)变得更简单易用。
MSN Messenger Service 还可使用户间的联机交谈变得更加轻松愉快,了解谁在联机以及查看用户何时联机并与其交换即时消息。
用户间可以进行单独的聊天,或者在同一个对话窗口中与多达四个的联系人进行聊天。
自动的输入指示器可让用户知道何时联系人正在输入答复,还可以进行全球电话呼叫——以非常低的费用呼叫世界的任何地方。
用户可以选择所要使用的电话服务提供商,从服务提供商的列表中选择最适合的提供商。
用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各地的朋友进行交谈,甚至可以呼叫联系人将文本消息发送到联系人的移动电话和传呼机上(注:此特性仅适用于美国和加拿大),而进入“聊天室”结识新朋友,或加入与名人聊天,此特性在所有地区都适用。
用户可以使用MSN Messenger 与朋友交换照片、喜爱的音乐或任何其他文件,也可以监视新的电子邮件并查看用户有多少新的电子邮件。
MSN Messenger能在收到新的Hotmail邮件时通知用户,还能邀请联系人进行联机DirectPlay 兼容游戏。
1.3 本课题研究的意义
在当今信息时代,信息通信已成为这个世纪必不可少的组成部分,随着互联网技术的发展,聊天软件作为即时性通信工具的主流,已被越来越多的人所喜爱。
在中国,上网的用户几乎都用腾讯QQ进行聊天。
当前腾讯QQ的注册帐户已经超过4.3亿,是中国用户最多、最为流行的聊天工具。
起初的QQ只支持文字聊天,随着相关技术的发展,腾讯QQ也不断的自我完善,增加众多实用的、人性化的功能,得到了许多用户的支持与喜爱。
现如今腾讯公司已经初步完成了面向在线生活产业模式的业务布局:构建了QQ、、QQ游戏以及QQ移动手机门户这四大网络平台,形成了规模巨大的网络社区。
在满足用户信息传递与知识获取需求方面,拥有门户、QQ即时通讯工具以及年初收购的Foxmail 电子邮件等;在满足用户群体交流和资源共享方面,腾讯推出的个人博客Q-Zone 将与访问量极大的论坛、聊天室、QQ群相互协同;在满足用户个性展示和娱乐服务方面,腾讯拥有非常成功的虚拟形象产品QQshow、QQpet(宠物)和QQGame (游戏)QQMusic/Radio/LiveTV(音乐/电台/电视直播)等,另外对手机用户提供了彩铃、彩信等无线增值业务;在用户的交易需求方面,专门为腾讯用户设计开发的C2C电子商务拍卖网已经上线,并和整个社区平台无缝整合。
像QQ这样聊天工具已经逐渐适应了时代的发展,市场的需求,给人们提供了全方位的信息
服务平台,使用户在互联网上的生活更加丰富多彩,它不仅带来了巨大的商业价值,而且也给人们的生活带来了无比的欢乐与便利。
1.4 本文的主要工作
随着用户对软件功能的需求不断提高,即时通讯的产品也不断地更新换代。
即时通讯的发展不论是在基础应用方面还是在扩展应用方面都有着飞跃。
为了满足用户的需求,包括腾讯公司的聊天软件QQ在内,许多即时性聊天工具都推出了语音聊天、视频聊天功能模块。
本文主要对聊天软件的语音聊天和视频聊天等相关功能的实现原理进行了研究。
本文首先对聊天软件的发展以及其对人们的生活有何影响作了简述,并对开发环境和工具进行了相应说明并对此聊天软件系统进行了较为详细的分析;进而提出了该多功能聊天软件的设计方案。
在本次多功能聊天软件的设计与开发中,本人主要负责设计开发登录模块、注册模块、语音聊天模块、视频聊天模块,并对此聊天软件系统的登录模块、注册模块、语音聊天、视频聊天模块的设计与实现进行了较详细的说明和分析。
2 需求分析及开发工具
2.1 需求分析
此聊天软件系统是模拟现今国内最为流行的即时性通讯工具QQ而设计的,能够实现注册、登录、添加好友、文字聊天、文件传输、语音聊天、视频聊天等功能。
该聊天软件系统是采用C/S结构,即客户端与服务器端的结构体系。
基于对该聊天软件功能的分析,本文分别对客户端与服务器端进行了设计。
该聊天软件服务器端的功能是实现对客户端提交的用户信息进行处理。
服务器设计内容包含:信息接收、注册、登录、刷新、更新、添加好友等。
“信息接收”是提供服务器接受客户端发送信息的功能;“注册”是服务器端接受到用户的注册信息请求后,将请求信息写入到数据库,为用户的注册提了相关服务;“登录”是服务器通过验证登录信息来实现相关的服务;“刷新”是对服务器的更新数据每过一段时间进行一次刷新,来显示用户当前在服务器的信息状况,如在线状态等;“更新”是服务器对用户在数据库中信息进行相关的操作;“用户退出处理”是服务器在用户退出聊天系统后作出的相关处理工作;“好友添加”是服务器对添加的好友信息进行处理等相关操作。
客户端即用户使用的应用程序端。
用户通过该聊天软件的客户端来实现网上聊天的相关功能:注册、登录、添加好友、文字聊天、文件传输、语音聊天、视频聊天等。
注册功能是提交用户相关信息以及获得一个属于自己登录该聊天软件系统的用户ID号;登录功能是实现验证用户信息与合法使用该聊天软件系统的
权限;添加好友是实现用户之间好友添加的操作;添加好友成功后,就可以与好友之间开始文字聊天、文件传输、语音聊天、视频聊天等功能。
(1)该服务器的运行环境:
①操作系统:windows2000或windows2003;
②内存:256M以上(最低为256M);
③CPU:Intel(R) Celeron(R) 2.0GHz或AMD 1800+以上均可;
④其它:Microsoft .NET Framework SDK。
(2)客户端的运行环境:
①操作系统:windows XP或windows2003等;
②内存:256M以上(最低为256M);
③CPU:Intel(R) Celeron(R) 2.0GHz或AMD 1800+以上均可;
④摄像头、耳机等外部设备。
第一次使用系统的用户通过填写个人信息来注册,服务器返回一个注册ID 号给注册用户,用来登录。
已经注册的用户在登录界面填写完相关登录信息,通过服务器的验证后就可以进入客户端界面。
在线用户在添加好友时可以查看所要添加用户的列表信息。
当对要添加的好友发送请求添加的信息后,由该好友验证是否通过请求,同意后会向请求方发送同意添加的消息。
当请求方添加完成后,服务器端会把相关信息存入到好友表的数据库中。
完成以上操作以后,两人即可进行在线聊天。
2.2 开发工具
2.2.1C#语言的介绍
C#(Csharp)是一种最新的、面向对象的编程语言,它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序。
Microsoft .NET提供了一系列的工具和服务来最大程度地开发、利用计算与通讯领域。
C#面向对象的卓越设计使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。
使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。
最重要的是,C#使得C++程序员可以高效率地开发程序,而绝不损失C/C++原有的强大功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快地转向C#。
C#语言是允许类型定义、扩展的元数据,这些元数据可以应用于任何对象。
项目构建者可以定义领域特有的属性并把他们应用于任何语言元素类、接口等等。
然后,开发人员可以编程检查每个元素的属性。
这样,很多工作都变得更加方便:譬如编写一个小工具来自动检查每个类或接口是否被正确定义为某个抽象
商业对象的一部分,或者只是创建一份基于对象的领域特有属性的报表。
定制的元数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现的之间的对应关系。
在C#中,每个对象都自动生成为一个COM对象。
开发者不再需要显式的实现IUnknown和其他COM接口.这些功能都是内置的、类似的,C#可以调用现有的COM对象,无论它是由什么语言编写的。
C#包含了一个特殊的功能:使程序可以调用任何纯API。
在一段特别标记的代码中,开发者可以使用指针和传统C/C++特性,如手工的内存管理和指针运算。
这是其相对于其它环境的极大优势。
这意味着C#程序员可以在原有的C/C++代码的基础上编写程序,而不是彻底放弃那些代码
2.2.2 C/S结构的介绍
C/S(client/server)结构,即被广为熟知和使用的客户机和服务器结构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到client端和server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是client/server形式的两层结构,由于现在的软件应用系统正在向分布式的web应用发展,web和client/server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部用户和外部用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
传统的c/s体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是client端还是server端都还需要特定的软件支持。
由于没能提供用户真正期望的开放环境,c/s结构的软件需要针对不同的操作系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。
而且代价高,效率低。
C/S架构软件的优势与劣势:
(1)应用服务器运行数据负荷较轻。
最简单的c/s体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,
并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。
在c/s体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
(3)c/s架构的劣势是高昂的维护成本且投资大。
首先,采用c/s架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。
2.2.3 开发环境
微软发布了.NET开发平台,这是自1993年7月随着Windows NT3.0出现的Win32 API后微软软件开发平台的第一次大升级。
比起Win16来,Win32提供了更多功能强大的API,但没有对工具和技术进行引人注目的改变。
与之不同的是,.NET开发平台在开发者用以创造应用程序的工具和技术上做了根本的改变。
.NET开发平台使得开发者创建运行在Internet Information Server (IIS)(互联网信息服务器)Web服务器上的Web应用程序更为容易,它也使创建稳定、可靠而又安全的Windows桌面应用程序更为容易。
.NET开发平台包括以下内容:
(1).NET Framework(架构),包括:Common Language Runtime(CLR)(通用语言运行环境),这是用于运行和加载应用程序的软件组件;新的类库,分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及在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)的特殊类库,
用来创建动态的Web内容和Web服务器应用程序,这些都将采用诸如HTML、XML和Simple Object Access Protocol(SOAP)(简单对象访问协议)等Internet 协议和数据格式。
.NET开发平台是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台创建的应用程序在Common Language Runtime(CLR)(通用语言运行环境)(底层)的控制下运行。
CLR是一个软件引擎,用来加载应用程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然后在运行完成后将它们清除。
类库集提供了使应用程序可以读写XML数据、在Internet上通信、访问数据库等的代码。
所有的类库都建立在一个基础的类库之上,它提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层功能。
Web服务器应用程序通常依赖于,一个处理Web请求的服务器端的库。
又依赖一个用于发送和接收SOAP信息的Web Services库,以及一个用于以浏览器接收用户输入并动态地生成Web页面以示响应的Web用户接口(UI)(有时称作Web 表单)。
Windows桌面应用程序通过使用Win表单库(也称作Windows 表单)可以显示一个图形UI。
最后,Visual Studio .NET提供了一个用于在该平台上创建应用程序的图形Integrated Development Ewironment(IDE)(集成开发环境)。
程序员可以使用一种或多种.NET编程语言,来编写他们的代码,例如微软自己的Visual Basic .NET (),Visual C++, Visual C#和JScrjpt .NET等。
大量其它的.NET编程语言可以从第三方厂商获得。
2.2.4 SQL Server 2000数据库介绍
MicrosoftSQLServer2000是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。
众所周知,SQLServer2000能够满足今天的商业环境要求不同类型的数据库解决方案。
它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。
性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。
除这些核心企业品质外,SQLServer2000还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。
从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。
作为一个完备的数
据库和数据分析包,SQLServer2000为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。
作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer2000是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。
3 多功能聊天软件的设计方案
3.1聊天系统流程的分析与设计
图1 系统流程图
此聊天软件采用了C/S结构,其系统流程图如图1所示,使用这个聊天系统软件的用户必须先进行注册。
用户首先选择注册选项,填写相关的注册信息,然后通过网络提交给服务器,再由服务器将注册信息提交给数据库。
同时服务器会按顺序生成一个登录ID号返回给注册用户,这样注册就完成了。
完成注册的用户可以用返回的ID号和自己注册时填写的密码进行登录。
用户将登录信息提交给服务器,服务器根据数据库中的注册信息与登录信息进行比较,比较一致后,则进入系统的客户端应用程序模块。
这时你要与好友进行聊天,则必须添加好友:进行用户2添加用户N为好友的操作过程中,用户2首先向用户N发出添加好友的请求信息,当用户N接受到用户2的信息,在通过验证后会发送确认反馈信息给用户2,并且向服务器提交好友添加确认信息,这时服务器就会更新相应用户的好友列表中的信息。
好友添加完成后,用户之间就可以进行彼此之间的通信,如文字聊天、视频聊天、语音聊天、文件传输等。