网络聊天工具的设计与实现.doc
《网络聊天工具的设计与实现.doc》由会员分享,可在线阅读,更多相关《网络聊天工具的设计与实现.doc(32页珍藏版)》请在沃文网上搜索。
1、湖南理工学院南湖学院毕业设计(论文) 摘 要视频聊天系统作为一种新型的通信和交流工具,突破了地域的限制,可以提供更为便捷、灵活、全面的音、视频信息的传递和服务,具有极其广泛的发展前景。本文介绍了采用Microsoft Visual C+ 6.0编程开发视频聊天系统的一套比较常用的解决方案。文字聊天采用TCP模式;语音视频聊天采用UDP模式,在客户端之间点对点的进行。在该方案中,通过函数库VFW来实现视频捕获、影像压缩以及影像播放。微软公司提供的专门用于视频捕获开发的工具包VFW,为在Windows操作系统中实现视频捕获提供了标准的接口,从而大大降低了程序的开发难度。在视频传输方面,则通过组建视
2、频帧,将位图形式的视频帧压缩成帧格式的Mpeg4流,传输到客户端后,解压并显示影像。同时,在本方案中,采用了线程来实现语音录制和语音回放,最终实现了通过服务器中转的文字聊天、点对点的语音视频聊天。关键词:文字聊天;视频捕获;视频传输;语音录制与回放AbstractAs a new tool about communication, video chatting system has broken through geographical restrictions, has provides more convenient, flexible and complete transmission
3、and service. Furthermore, it has a very bright future.The common solution about how to develop a video chatting system is introduced by the Microsoft Visual C + + 6.0 programming. TCP model is used in the text chatting and UDP for the point-to-point video chats between the Clients. In this plan, Vid
4、eo Capture, Video Compression Manager and DrawDib are realized by the functions of VFW Library. The special kit VFW (Video for Windows) in video capture offered by Microsoft Corporation, has provided a standard interface for video capture in Windows Operating System and thus greatly reduced the hard
5、ship of programming. In video transmission aspect, it requires a video frame which is compressed the video frame of bitmap into Mpeg4 steam of frame form. Then it will be decompressed into images since it has been arrived the Client. Meanwhile, the thread is used to achieve audio recording and repla
6、ying. Finally, it has realized the text chatting through a server to transit, the point-to-point audio and video chats.Keywords: text chatting; Video Capture; video transmission; audio recording and playing 32湖南理工学院南湖学院毕业设计(论文) 目 录摘 要IABSTRACTII第一章引 言11.1课题背景11.2国内外研究现状11.3本课题研究的意义2第二章 理论知识介绍42.1 C+
7、语言的介绍42.2 VFW简介52.3 C/S结构的介绍82.4线程的实现方法9第三章 需求分析113.1软硬件环境113.2需求分析11第四章 系统结构134.1硬件结构134.2软件结构134.2.1功能需求134.2.2系统功能模块图144.3系统各模块流程图14第五章 系统的详细设计165.1文字聊天165.1.1 TCP套接字的运用165.1.2 文字聊天实现175.2语音视频聊天195.2.1 UDP套接字的运用195.2.2视频的捕获205.2.3捕获窗口225.2.4视频捕获驱动245.2.5语音录制245.2.6语音回放255.2.7视音频的传输26结 论28参考文献29致
8、谢30第一章引 言3.1 1.1课题背景随着互联网技术的发展,互联网应用越来越丰富。互联网以其独特的传播方式吸引了大量用户,同时也给人们带来了许多便利,譬如可以借助于网络进行相互交流、信息传递等。聊天工具作为互联网中运用最为广泛的通信工具之一,它可以让用户之间进行即时的交流和信息的传递。聊天工具的出现可以说是基于互联网通信交流方式的历史性变革,它已经渐渐取代了原来效率低、费用高的如信件、电报的通信方式,以其快速、交互、简便的方式给用户的交流提供了简单、易用的信息平台,成为现今应用最为广泛的即时通信工具之一。随着相关技术的日益发展,用户对功能的需求不断提高。为了更好地服务于用户,聊天工具的功能也
9、在不断地完善。在未来的网络时代中,聊天工具将以即时通信为其基本特点,并与各种网络应用整合,同时随着无线网络的广泛应用,它将成为未来不可缺少的一种通信软件。本毕业设计的目的主要是为了满足人们通讯交流的便捷,实现灵活、全面的语音、视频信息的传递和服务。模拟腾讯公司的QQ聊天软件,开发一个多功能的聊天系统软件,本毕业设计主要实现视频语音聊天、文字聊天功能。3.2 1.2国内外研究现状中国的大部分网络用户都拥有自己的QQ号码。腾讯计算机系统有限公司成立于1998年11月。1999年2月,腾讯自主开发了基于Internet的即时通信网络工具腾讯即时通信Tencent Instant Messenger,
10、简称TIM或腾讯QQ。腾讯QQ经过三年时间的发展,到2002年,其用户群成为中国最大的互联网注册用户群,注册用户达到1亿6000万,其中活跃用户总数超过5000万。自此腾讯QQ成为中国最大的即时通信服务提供商。腾讯公司是中国最早也是目前中国市场上最大的本土互联网即时通信软件开发商。公司成立7年多以来,一直以追求卓越的技术为导向,始终处于稳健、高速发展的状态。腾讯QQ超过4.3亿的注册用户群体现了网络用户对腾讯QQ这一聊天工具的广泛应用。在当今市场经济高速发展的前提下,腾讯QQ也在不断自我完善,渐渐地演变为一个人性化、市场化的多功能的聊天工具软件,它可以给网络聊天用户带来越来越多的人性化服务:从
11、原来单一的文字聊天过渡到集语音、视频、文件传输等多功能于一身的聊天软件。ICQ和MSN是在国外比较盛行的即时聊天工具,腾讯QQ的开发对MSN和ICQ都进行了借鉴。ICQ是I Seek You(我找你)的缩写,最初是一家以色列公司开发出来的免费软件,中文名称目前可以称之为“网络呼叫器”,它在全球拥有超过4000万的用户。事实上这种软件最主要的功能就是让用户知道网络上的朋友现在有没有上线(前提是对方也有安装ICQ),然后可以互送Messages(消息)交谈或是交换档案等等,比电子邮件更具即时性。正如一位ICQ软件的最初程序设计员所说:“当你登录因特网之后,你周围都是些自己熟悉的人,而且,你还可以和
12、他们分享这种体验,这的确是一件令人激动的事情。”MSN是微软推出的聊天软件,是一套类似ICQ的网上即时通讯软件,它以最简单的方式为用户提供强有力的即时消息支持,同时能使Microsoft Outlook Express(R) 和MSN Hotmail(R)变得更简单易用。MSN Messenger Service 还可使用户间的联机交谈变得更加轻松愉快,了解谁在联机以及查看用户何时联机并与其交换即时消息。用户间可以进行单独的聊天,或者在同一个对话窗口中与多达四个的联系人进行聊天。自动的输入指示器可让用户知道何时联系人正在输入答复,还可以进行全球电话呼叫以非常低的费用呼叫世界的任何地方。用户可以
13、选择所要使用的电话服务提供商,从服务提供商的列表中选择最适合的提供商。用交谈取代键盘输入,使用计算机上的话筒和扬声器就可以和位于世界各地的朋友进行交谈,甚至可以呼叫联系人将文本消息发送到联系人的移动电话和传呼机上(注:此特性仅适用于美国和加拿大),而进入“聊天室”结识新朋友,或加入与名人聊天,此特性在所有地区都适用。用户可以使用 MSN Messenger 与朋友交换照片、喜爱的音乐或任何其他文件,也可以监视新的电子邮件并查看用户有多少新的电子邮件。MSN Messenger能在收到新的 Hotmail邮件时通知用户,还能邀请联系人进行联机DirectPlay 兼容游戏。3.3 1.3本课题研
14、究的意义在当今信息时代,信息通信已成为这个世纪必不可少的组成部分,随着互联网技术的发展,聊天软件作为即时性通信工具的主流,已被越来越多的人所喜爱。在中国,上网的用户几乎都用腾讯QQ进行聊天。当前腾讯QQ的注册帐户已经超过4.3亿,是中国用户最多、最为流行的聊天工具。起初的QQ只支持文字聊天,随着相关技术的发展,腾讯QQ也不断的自我完善,增加众多实用的、人性化的功能,得到了许多用户的支持与喜爱。现如今腾讯公司已经初步完成了面向在线生活产业模式的业务布局:构建了QQ、QQ.com、QQ游戏以及QQ移动手机门户这四大网络平台,形成了规模巨大的网络社区。在满足用户信息传递与知识获取需求方面,拥有QQ.
15、Com门户、QQ即时通讯工具以及年初收购的Foxmail电子邮件等;在满足用户群体交流和资源共享方面,腾讯推出的个人博客Q-Zone将与访问量极大的论坛、聊天室、QQ群相互协同;在满足用户个性展示和娱乐服务方面,腾讯拥有非常成功的虚拟形象产品QQshow、QQpet(宠物)和QQGame(游戏)QQMusic/Radio/LiveTV(音乐/电台/电视直播)等,另外对手机用户提供了彩铃、彩信等无线增值业务;在用户的交易需求方面,专门为腾讯用户设计开发的C2C电子商务拍卖网已经上线,并和整个社区平台无缝整合。像QQ这样聊天工具已经逐渐适应了时代的发展,市场的需求,给人们提供了全方位的信息服务平台
16、,使用户在互联网上的生活更加丰富多彩,它不仅带来了巨大的商业价值,而且也给人们的生活带来了无比的欢乐与便利。第二章 理论知识介绍3.4 2.1 C+语言的介绍C+语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C+以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C+完美地体现了面向对象的各种特性5。(1)C+支持数据封装 支持数据封装就是支持数据抽象。在C+中,类是支持数据封装的工具,对象则是数据封装的实现。面向过程的程序设计方法与面向对象的程序设计方法在对待数据
17、和函数关系上是不同的,在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义,数据将被隐藏在封装体中,该封装体通过操作接口与外界交换信息。对象被说明具有一个给定类的变量,类类似于C语言中的结构,在C语言中可以定义结构,但这种结构中包含数据,而不包含函数。C+中的类是数据和函数的封装体。在C+中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。 (2)C+类中包含私有、公有和保护成员 C+类中可定义三种不同访控制权限的成员。一种是私有(Private)成员,只有在类中说明的函数才能访问该类的私有成员,而在该类外的函数不可以访问私有成员;另一种
18、是公有(Public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(Protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。 (3)C+中通过发关消息来处理对象 C+中是通过向对象发关消息来处理对象的,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。响应这些消息是一系列的方法,方法是在类定义中使用函数来定义的,使用一种类似于函数调用的机制把消息发送到一个对象上。 (4)C+中允许友元破坏封装性 类中的私有成员一般是不允许该类外面的任何函数访问的,但是友元便可打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。友元
19、可以是在类外定义的函数,也可以是在类外定义的整个类,前者称友元函数,后者称为友元类。友元打破了类的封装性,它是C+另一个面向对象的重要牲。 (5)C+允许函数名和运算符重载 C+支持多态性,C+允许一个相同的标识符或运算符代表多个不同实现的函数,这就称标识符或运算符的重载,用户可以根据需要定义标识符重载或运算符重载。 (6)C+支持继承性 C+中可以允许单继承和多继承。一个类可以根据需要生成派生类。派生类继承了基类的所有方法,另外派生类自身还可以定义所需要的不包含在父类中的新方法。一个子类的每个对象包含有从父类那里继承来的数据成员以及自己所特有的数据成员。 (7)C+支持动态联编 C+中可以定
20、义虚函数,通过定义虚函数来支持动态联编4。3.5 2.2 VFW简介VFW是Microsoft 1992年推出的关于数字视频的一个软件包,它能使应用程序数字化并播放从传统模拟视频源得到的视频剪辑。VFW的一个关键思想是播放时不需要专用硬件,为了解决数字视频数据量大的问题,需要对数据进行压缩。它引进了一种叫AVI的文件标准,该标准未规定如何对视频进行捕获、压缩及播放,仅规定视频和音频该如何存储在硬盘上,以及在AVI文件中交替存储视频帧和与之相匹配的音频数据。VFW给程序员提供VBX和AVICap窗口类的高级编程工具,使程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。用户不必专门安装VF
21、W,在安装Windows时,安装程序会自动地安装配置视频所需的组件,如设备驱动程序、视频压缩程序等6。VFW主要由以下六个模块组成:(1)AVICAP.DLL:包含了执行视频捕获的函数,它给AVI文件、I/O和视频音频设备驱动程序提供一个高级接口。(2)MSVIDEO.DLL:用一套特殊的DrawDib函数来处理屏幕上的视频操作。(3)MCIAVI.DRV:此驱动程序包括对VFW的MCI命令的解释器。(4)AVIFILE.DLL:支持由标准多媒体I/O(mmio)函数提供的更高的命令来访问AVI文件。(5)压缩管理器(ICM):管理用于视频压缩/解压缩的编解码器(CODEC)。(6)音频压缩管
22、理器ACM:提供与ICM相似的服务,不同的是它适于波形音频。Visual C+在支持VFW方面提供有vfw32.lib、msacm32.lib、winmm.lib等库。特别是它提供了功能强大、简单易行、类似于MCIWnd的窗口类AVICap。AVICap为应用程序提供了一个简单的、基于消息的接口,使之能访问视频和波形音频硬件,并能在将视频流捕获到硬盘上的过程中进行控制。AVICap支持实时的视频流捕获和单帧捕获,并提供对视频源的控制。虽然MCI也提供数字视频服务,比如,它为显示AVI文件的视频提供了AVIVideo命令集,为视频叠加提供了overlay命令集,但这些命令主要是基于文件的操作,不
23、能满足实时地直接从视频缓存中获取数据的要求。对于使用没有视频叠加能力的捕获卡的PC机来说,用MCI提供的命令集是无法捕获视频流的。而AVICap在捕获视频方面具有一定的优势,它能直接访问视频缓冲区,不需要生成中间文件,实时性很强,效率很高。同时,它也可将数字视频捕获到文件。在视频捕获之前需要创建一个捕获窗,所有的捕获操作及其设置都以它为基础。用AVICap窗口类创建的窗口(通过capCreateCaptureWindow函数创建)被称为“捕获窗”,其窗口风格一般为WS_CHILD和WS_VISIBLE。实际上,捕获窗类似于标准控制(如按钮、列表框等)。捕获窗具有下列功能:(1)将视频流和音频流
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 聊天工具 设计 实现
