




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要当今社会信息技术的进步对社会的发展产生极其巨大的影响,其影响波及到社会的各个领域,促使了知识经济的崛起,世界文化的交汇,各国政治的公开和进一步的民主化。信息技术在迅速改变社会的同时,也给教育以更大的发展空间。通信技术、计算机技术和网络技术是信息技术的核心,它们为教育和学习突破时空的限制,为教育大众化的同时更加个别化和个性化提供了日益先进的技术支撑1。视频传输在远程教育中有着举足轻重的地位,搭建起的视频传输平台才能给予与老师“面对面”交互式沟通的学习机会。本系统就是着重开发视频以及桌面的点对点传输和多播传输。通过多种网络协议,实现视频数据的传输,使得通信双方可是获得实时的信息。关键词:远程教学系统,远程教学视频系统,C#,.NET,UDP,RTP,TAPI3ABSTRACTInformation technology in todays society the progress of social development to have an extremely great impact, its influence is felt in all areas of society to promote the rise of the knowledge economy, the worlds cultural crossroads, the political openness and further democratization. Information technology in the rapidly changing society, but also to education to a greater space for development. Communication technology, computer technology and network technology is the core of information technology, they provide education and learning breakthroughs in space and time limitations, for popular education at the same time more individualized and personalized to provide the increasingly sophisticated technical support .Video transmission in distance education has a pivotal position, build a platform for the video transmission can be given with the teacher face-to-face communication between the interactive learning opportunities. Focus on the development of this system is point-to-point desktop video, and transmission and multicast transmission. Through a variety of network protocols, video data transmission, making communications both real-time information access, however.Keywords: distance learning system, distance learning video system, C #,. NET, UDP, RTP, TAPI3目录1课题的研究背景与目的11.1课题的研究背景11.2课题的目的与意义21.3课题完成的工作22系统相关技术简介32.1系统开发及其技术32.2 .NET基本概念简介32.3 .NET基类库62.4语言和技术62.5网络技术和协议82.5.1 TCP/IP体系结构82.5.2传输控制协议92.5.3用户数据报协议92.5.4实时传送协议102.5.5 Socket112.5.6 TAPI:电话应用程序接口113系统的设计133.1可行性分析133.2需求分析133.2.1系统需求分析143.2.2本系统的逻辑模型图153.3总体设计154系统简介174.1系统所能实现的功能174.1.1点对点通信174.1.2多播通信174.2系统预览184.2.1 教师端软件184.2.2 学生端软件214.2.3 服务器端软件225详细实现235.1新建应用程序235.2 IP数据子系统235.3教师学生点对点子系统285.4教师多播子系统385.5学生多播子系统475.6 视频录制程序505结束语54参考文献55致 谢561课题的研究背景与目的1.1课题的研究背景众所周知,当今社会是一个知识空前繁荣的社会,信息以爆炸形式在递增。据联合国教科文组织的统计,人类近100年掌握的科学知识,占有史以来积累的科学知识总量的90,人类的知识在19世纪是每50年增长,倍,20世纪初是每10。年增长一倍,而近10年则是大约每3年增长尸倍。在该组织一篇著名的研究报告中指出,人类已进入到一个终身学习的社会。对每个人来说,包括大学在内的学校教育完成以后,仍不能满足现实生活,工作的需要,仍然需要继续学习2。我国最早在微电子领域进行研究的专家王芹生说:“世界变化太快了,我一直在学习新的知识。相信未来更是一个需要不断学习的世界。”这种学习不完全局限于学校的范围之内,在学校之外通过家庭、社会、工作岗位以及生活的各方面的体验,都是学习,都是获得知识的途径。学习将成为伴随人的一生的不间断的活动,成为发展的基础。因此,终身学习和终身教育的概念被越来越多的人所接受,迅速增长的学习需求与匮乏的教育资源之间的矛盾日益尖锐,单靠传统的教育机构是不可能满足如此之巨:的学习需求。这就要求家庭、社会,教育部门以及非教育部门都要能提供学习机会,并参与教育活动,也就是要构建一个学习化的社会,使人们能够在任何时刻都能自由地进行学习。但是,传统的教育受时间、空间和人力、物力酌限制,难以达到学习化社会的要求。美国人杜拉克说:“对学习者来说,传统的学校学习方式也不适合他们,他们不可能经常抛下自己的工作和家庭回学校集中学习。他们需要更方便、更灵活的学习方式;”而网络远程教育正提供了这样的好机会。1.2课题的目的与意义网络远程教育不受时间、空间和地域的限制,通过网络能把学校扩展到办公室、家庭甚至全社会的每一个角落,工作与学习相融合。通过网络,每个人都可以自主选择在何时何地学习。那些已有工作岗位无法进行脱产学习的成人,就有条件和机会接受各种层次的教育。 现代远程教育是通过音频、视频(直播或录像)以及包括实时和非实时在内的计算机技术把课程传送到校园外的教育,远程教育是随着现代信息技术的发展而产生的一种新型教育方式。计算机技术、多媒体技术、通信技术的发展,特别是因特网(internet)的迅猛发展,使远程教育的手段有了质的飞跃,成为高新技术条件下的远程教育,此平台能给予与老师“面对面”交互式沟通的学习机会正是设计该系统的目的。1.3课题完成的工作本系统的研究目标是使用Microsoft VisualStudio 2008开发工具,开发一个基于C#语言的远程教育视频系统。通过综合运用数据库原理、网络通信原理、软件工程、程序设计等相关知识,深入远程教育视频系统的设计与开发过程,掌握更多的数据库应用、视频传送和网络传输的知识,使系统实现下列功能:(1)受教育者可以通过身份认证登陆网站下载视频软件或在线观看视频。(2)视频软件可以进行P2P视频语音的传输,视频的多点传输。(3)教师可以通过身份认证登陆网站进行视频的录制和发布。(4)系统管理员拥有最高权限,可查阅和编辑所有数据,包括登陆信息数据库和视频发布信息数据库。2系统相关技术简介2.1系统开发及其技术深入千家万户,还有因特网的不断普及,人们的生活方式发生了翻天覆地的变化。通过一方神奇的小小屏幕,就可以满足我们的娱乐,学习,工作,购物等各种功能。而随着全球科技浪潮和知识的加速翻新,人们开始利用网络的便捷来学习新知识,并把这看成一种时尚。经过数年的迅猛发展,如今的网络教育已日趋成熟,成为了现代教育的标志,并广泛融入到教育的各个环节中。远程教育系统采用Access数据库,应用C#语言和.NET环境中开发完成。该系统实现的主要功能有:(1)学生用户和教师用户可在教学过程中通过点对点的视频软件进行沟通。(2) 教师用户可以通过视频录制软件录制视频,并将视频发布到网站上。(3)教师用户可以通过多播软件,进行视频、桌面和白板的多播。(4) 学生用户和教师用户可以登陆网站在论坛中发表主题,查看内容,回复信息。本文对该系统需要的功能进行了比较完善的分析和研究,开发的软件很好的实现了系统的功能。该系统的开发是在Microsoft VisualStudio 2008软件的编程环境下实现,数据库系统Access软件实现。2.2 .NET基本概念简介.NET是微软公司针对Web Service的解决方案。其他公司也有类似的解决方案,例如Sun的Sun ONE, IBM的下一版本WebSphere3。 对于.NET到底是什么这个问题,有着各种各样的说法。但当时作为首席执行官的鲍尔默应该最能代表微软公司的观点,他说:“Microsoft.NET 代表了一个集合、一个环境、一个可以作为平台支持下一代Internet的可编程结构。”确实,这句话基本上简单扼要地表述了.NET的外特性。 .NET是在互联网环境中,连接各种信息、人员、系统与设备的软件架构。.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问他们所需要的信息、文件和程序。而用户不需要知道这些东西存在什么地方,甚至连如何获得等具体细节都不知道。他们只需发出请求,然后只管接收就是了,而所有后台的复杂性是完全屏蔽起来的。所以对于企业的IT人员来说,他们也不需要管理复杂的平台以及各种分布应用之间的工作是如何协调的。Microsoft VisualStudio .NET 2008是微软公司开发的新型软件架构.NET中的一部分,主要用来创建Windows项目和Web应用程序。Visual Studio.NET 是一套完整的开发工具,用于生成 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。Visual Basic.NET、Visual C+.NET、Visual C#.NET 和 Visual J#.NET 全都使用相同的集成开发环境 (IDE),该环境允许它们共享工具并有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,此框架提供对简化 ASP Web 应用程序和 XML Web services 开发的关键技术的访问。理解.NET Framework最简单的方式是把它看作是执行代码的环境。.NET管理代码的执行启动代码、给它赋予相应的权限、为它分配内存以存储其数据,帮助释放那些不在需要的内存资源等。除了执行这些任务外,.NET还要使用一个非常复杂的类库所谓的.NET基类,以便在Windows上执行大量的任务。对这一任务,.NET承担了双重角色;管理代码的执行和为代码提供服务。如前所述,.NET位于代码和Windows之间,可以提供需要的服务,在解释.NET程序执行时发生的情况之前,先定义一下.NET组件和我们所需要的其他术语。(1).NET运行时:也称为公共语言运行时(Common Language Runtime)或CLR,它实际管理代码。它可以处理加载程序,运行程序的代码,以及提供所有支持的代码。(2)受管制的代码:在.NET环境中运行的任何代码都称为受管制的代码(managed code)。.NET外部的其它代码也运行在Windows上,这些代码称为未受管制的代码(unmanaged code)。(3)中间语言(IL):在.NET运行时加载和运行代码时,这种语言确定代码的位置。在编译受管制的代码时,编译器实际上使用中间语言,CLR处理代码执行前的最后编译阶段。IL 可以非常快速的编译为内部的机器代码,同时支持.NET的功能。(4)公共类型系统(CTS):为了实现语言的互操作性,必须有一组各种语言都认可的基本数据类型,这样才能对所有语言进行标准化处理。CTS就提供了这个功能,还提供了定义鼎峙类的规则。(5).NET基类:这是一个扩展的类库,它包含预先写好的代码,执行Windows上各种任务,例如显示窗口和窗体、访问Windows基本服务、读写文件、访问网络和Internet、访问数据源。(6)公共语言规范(CLS):这是确保代码可以在任何语言中访问的最小标准集合。所有用于.NET的编译器都应支持CLS。CLS构成了可以在.NET和IL中使用的功能子集,代码也可以是使用CLS外部的功能。如果非CLS功能在代码所在的装配件的外部是可见的,那么这些功能就不能在某些语言中使用。(7)Just-in-time(JIT)编译:这个术语用于表示执行编译过程的最后阶段,即从中间语言转换为内部机器代码。起名称的来源是部分代码是按需要即时编译的。2.3 .NET基类库首先,从易于编写代码的角度来看,编写受管制的代码的最大好处是可以使用.NET基础类库。.NET类库是Microsoft已经编写好的一个内容丰富的受管制的代码类集合,它可以完成以前要通过Windows API来完成的绝大多数任务。这些类派生于与中间语言相同的对象模型,也基于单一继承性。无论.NET基类是否合适,都可以实例化对象,也可以从它们中派生自己的类。.NET基类的一个优点是他们非常易用,且都是自我描述性的。例如,要启动一个线程,可以调用Thread类的Start()方法。要打开一个文件,可以调用File类的Open()方法。要禁用TexBox,应把TexBox对象的Enable属性设置为false。Visual Basic和Java开发人员非常熟悉这种自我描述性的类,他们的库在易用性方面是非常类似的。.NET基类包括:IL提供的核心功能,Windows GUI支持,控件等,Web窗体(ASP.NET),数据访问(ADO.NET),目录访问,文件系统和注册表访问,联网和Web浏览,.NET属性和反射,访问windows操作系统、环境变量等各个方面,访问不同语言的源代码和编译器,COM互操作性,制图技术(GDI+)。2.4语言和技术C#是一种新的面向对象的编程语言,专门用于.NET运行时。C#编译器只能生成受管制的代码,也可以使用.NET基类。C#的重要性体现在两个方面:第一,它是专门为与.NET运行时高速兼容而设计的。第二,它是一种现代的面向对象语言,在设计它时,Microsoft还学习了其他类似语言的经验,这些类似语言是近20年来面向对象规则得到广泛应用以来发出来的。C#本身而言只是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。一些特性由.NET支持,但C#不支持。而另一些特性C#支持,.NET不支持!一些C#的异常处理语句就属于这个范围。C#的优点:(1)简单性C#中指针已经消失;不安全的操作,比方说直接内存操作不被允许了;C#中:或-操作符是没用的;因为它是基于.NET平台的,它继承了自动内存管理和垃圾回收的特点;原始数据类型可变的数据范围象Integer,Floats等;整形数值0和1不再作为布尔值出现;C#中的布尔值是纯粹的true和false值而且没有更多的=操作符和=操作符错误,=被用于进行比较操作而=被用做赋值操作。(2)现代性C#建立在当前的潮流上,对于创建相互兼容的,可伸缩的,健壮的应用程序来说是非常强大和简单的;C#拥有内建的支持来将任何组件转换成一个web service,运行在任何平台上的任何应用程序都可以通过互联网来使用这个服务。(3) 面向对象性C#支持数据封装,继承,多态和对象界面(即java中的interface关键字);(int,float,double)在java中都不是对象,但是C#引入和结构体(structs)来使原始数据类型变成对象int i=1;String a=i Tostring()。(4) 类型安全性在C#中我们不能进行不安全的类型转换象将double转换成boolean; 值类型(常量类型)被初始化为零值而引用类型(对象和类被编译器自动初始化为零值.; 数组类型下标从零开始而且进行越界检查; 类型溢出将被检查.(5) 相互兼容性C#提供对COM和基于windows的应用程序的原始的支持;允许对原始指针的有限制的使用;用户不再需要显式的实现unkown和其它COM界面,这些功能已经内建;C#允许用户将指针作为不安全的代码段来操作老的代码;VB.NET和其它中间代码语言中的组件可以在C#中直接使用。2.5网络技术和协议2.5.1 TCP/IP体系结构TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。TCP/IP协议包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。2.5.2传输控制协议(Transmission Control Protocol, TCP)TCP是属于传输层的协议,向应用层提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常为一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。因此在一个TCP连接中,仅有两方进行彼此通信,没有广播和多播的概念4。在TCP的数据传送状态,很多重要的机制保证了TCP的可靠性和强壮性。它们包括:使用序号,对收到的TCP报文段进行排序以及检测重复的数据;使用校验和来检测报文段的错误;使用确认和计时器来检测和纠正丢包或延时。TCP使用了端口号的概念来标识发送方和接收方的应用层。对每个TCP连接的一端都有一个相关的16位元的无符号端口号分配给它们。端口被分为三类:众所周知的、注册的和动态/私有的。众所周知的端口号是由因特网赋号管理局(IANA)来分配的,并且通常被用于系统一级或根进程。众所周知的应用程序作为服务器程序来运行,并被动地侦听经常使用这些端口的连接。2.5.3用户数据报协议(User Datagram Protocol, UDP)UDP是一个简单的面向数据报的传输层协议,它只提供不可靠性的数据传输服务:把应用程序传给IP层的数据发送出去,但并不保证它们能到达目的地。这意味着,UDP客户机向指定的远端主机发送数据报时,并未事先确知对方是做好了接数据的准备。因此就会发生某一客户机发给一个主机,而此主机事先并未把此客户机列入其目标端口号而加以监听的情况。和TCP一样,UDP在首部中都有覆盖它们首部和数据的校验和,但TCP的校验和是必需的,而UDP的校验和是可选的。当接收端接收到的校验和有差错时,UDP就将数据报丢弃,并不产生任何差错报文4。UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。2.5.4实时传送协议(Real-time Transport Protocol或简写RTP)RTP是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的5 。国际电信联盟ITU-T也发布了自己的RTP文档,作为H.225.0,但是后来当IETF发布了关于它的稳定的标准RFC后就被取消了。它作为因特网标准在RFC 3550(该文档的旧版本是RFC 1889)有详细说明。RFC 3551(STD 65,旧版本是RFC 1890)详细描述了使用最小控制的音频和视频会议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在用户数据报协议上的。2.5.5 Socket美国政府的高级研究工程机构(ARPA)给加利福尼亚大学Berkeley分校提供了资金,让他们在UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络通信开发了一个API(应用程序接口)。这个API称为Socket接口(套接字)。今天,SOCKET接口是TCP/IP网络最为通用的API,也是在INTERNET上进行应用开发最为通用的API。SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。在应用开发中就像使用文件句柄一样,可以对SOCKET句柄进行读,写操作。在网络编程中最常用的方案便是客户机/服务器模型。在这种方案中客户应用程序向服务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程序被“惊醒”并且为客户提供服务对客户的请求作出适当的反应。虽然基于连接协议(流套接字)的服务是设计客户机/服务器应用程序时的标准,但有些服务也是可以通过无连接协议(数据报套接字)提供的。一般在使用中,面向连接协议的SOCKET编程模型应用最为广泛,因为面向连接协议提供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、无误地到达对方。总的来说,使用SOCKET接口(面向连接或无连接)进行网络通信时,必须按下面简单的四步进行处理:1、程序必须建立一个SOCKET。2、程序必须按要求配置此SOCKET。也就是说,程序要么将此SOCKET连接到远方的主机上,要么给此SOCKET指定一个本地协议端口。2.5.6 TAPI:电话应用程序接口6 电话应用程序接口(TAPI)是一种标准的应用程序接口(API),使得个人电脑能够通过运行微软的 Windows 系统来使用电话服务。电话应用程序接口(TAPI)被设计用来在同一个网络中同时支持 IP 及传统电话。即如果在一台计算机上安装了电话应用程序接口(TAPI)的应用软件和硬件,你就能够:电话应用程序接口(TAPI)标准不但支持局域网连接,而且还支持单个计算机的连接。对于每一类的连接方式,电话应用程序接口(TAPI)都为简单的电话控制和电话内容管理作了标准上的界定。除了向应用软件提供接口之外,电话应用程序接口(TAPI)还向硬件供应商提供服务供应商接口(SPI),以便于他们编写驱动软件。电话应用程序接口动态链接库(TAPIDLL)将应用程序接口(API)映射到服务供应商接口(SPI)上,并协调好输入/输出的信息传输。利用电话应用程序接口(TAPI),程序员能够为不同的电话系统轻松地开发出各种应用软件,如普通公共交换电话网络、ISDN 和专用分组交换机(PBX),且不需要知悉它们的全部细节。电话应用程序接口(TAPI)是由 Intel 和 Microsoft 两家公司联合开发的,现在已经被整合到 Windows 操作系统之中。不同版本的 Windows 提供的电话应用程序接口(TAPI)的版本也不同。1999 年,电话应用程序接口(TAPI)3.0 版和 Windows 2000 一起发行。该版本在两台或更多的计算机之间利用简单通用的方式进行连接并能够支持 IP 电话,现在该连接中的任何媒体流仍然提供被访问的功能。3系统的设计3.1可行性分析为了开发一个即能满足用户需求有切实可行的系统,需要对系统的可行性进行调研和分析,具体的分析结果如下:(1) 技术可行性 开发该系统的技术是可行的,在开发本系统的时候,因为有了良好的计算机基础,对于如何选择软件开发系统,经过考虑,我最终选取了功能强大的Microsoft VisualStudio 2008作为开发工具,利用C#语言在.NET环境中开发该系统是完全可以实现的。本系统对数据库的记录进行访问和操作,网络传输经行控制,视频音频硬件的采集,用Microsoft VisualStudio 2008都可以实现。由于用到的数据库不是很大,故采用轻量级的access数据库。(2) 该系统的开发和运行对硬件的要求不高,本系统的操作和界面为窗口模式。需要有一台计算机作为服务器管理access数据库。(3) 经济可行性本系统是一个小型视频系统,它对软件和硬件的投资费用要求都不高,只要具有相应的平台,就能够实现。3.2需求分析需求分析就是描述系统的需求,通过定义系统中关键域类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。因此本系统的需求分析也应该是开发人员和用户或者客户一起完成的。在本阶段我们要在可行性分析的基础上根据用户需求,分析类似系统,确定该系统必须要实现的功能,并画出系统的数据模型,及系统的功能模块图。3.2.1系统需求分析(1)项目开发目标本系统着重开发教师与学生之间的视频传输软件,通过多种形式(P2P,多播)丰富教学过程,提高教学质量。(2)项目相关用语表表3-1 用户分类序号用户名称用户描述1学生可登录学生页面并使用学生客户端的用户2教师可登录教师页面并使用教师客户端的,可以发布视频信息的用户3系统管理员管理用户信息,视频信息,IP数据库表3-2 功能分类序号功能名称功能描述1P2P视频语音教师和学生可以通过本功能进行视频语音的互动2多播视频教师可以通过本功能向多台计算机发布即时视频信息3多播演示教师可以通过本功能向多台计算机发布即时桌面信息4多播演示教师可以通过本功能向多台计算机发布绘图和文字信息3.2.2本系统的逻辑模型图系统的逻辑模型描述了本系统的主要逻辑模块,以及各个模块间的相互关系。如图所示。3.1系统模块图(虚线内是我所负责设计部分)3.3总体设计在上一阶段的需求分析的基础上,可将系统按功能划分成五大子系统:IP数据子系统、教师点对点子系统、教师多播子系统、学生点对点子系统、学生多播子系统。学生点对点系统IP数据子系统教师点对点系统学生多播子系统教师多播系统图3.2系统的总体层次结构。数据库:本系统采用Access数据库。Db.mdb包含两个表Test和Login表。1. Test表中存放着客户机的IP,其字段如下:IP:ip地址Teacher:检测是否是教师Conn:检测是否连接2. Login表中存放着登录的用户名,密码,其字段如下:Username:登陆用户名Password:登录密码Test和Login数据表:图3.3 数据库结构4系统简介4.1系统所能实现的功能远程教育视频系统的整体框图如图3.1所示。本设计在Visual Studio 2008开发环境下,采用C#语言编制。主要完成教师与学生之间的视频语音,桌面信息和白板信息的传递图4.1远程教育视频系统框图4.1.1点对点通信能够完成教师与以学生之间视频语音通信,(1)可以查询数据库确定对方是否上线(2)可以可控制摄像头选项以及分辨率(3)可以进行实际的视频语音传输4.1.2多播通信(1)可以实现视频的多播通信(2)可以实现文字和绘图的多播通信(3)可以共享教师的桌面信息4.2系统预览4.2.1 教师端软件教师软件运行后,可以选择P2P Video和Multicast两种模式图4.2教师端启动页面启动页面运行,通过页面左侧的认证模块认证后才能通过使用P2P Video 按钮和Multicast按钮,用户名和密码是网站上用户注册的用户名和密码。单击P2P Video 按钮后弹出P2P视频软件,由图可以看出,主界面包括:图像显示模块、IP显示模块、语音模块、菜单栏、状态栏等几部分组成。 当软件运行后会自动的检测服务器中的客户端的IP地址,用户可以在IP显示模块来选择IP地址。如图语音传输模块:通讯时,可以显示日志信息IP显示模块:显示对方IP,用户自行选择对象IP,用来通信图像显示模块:显示己方和对方的摄像头图像图4.3教师端页面video菜单,用于视频的控制,显示如下:控制摄像头选项和分辨率控制摄像头的开关图4.4 video菜单在WebCam下Ope Webcam用于打开摄像头,Close WebCam用于关闭摄像头;VideoFormat选项可以调用摄像头的选项对摄像头的分辨率和像素深度进行调节设计界面如下:图4.5摄像头选项 Video Trans选项下Listener用于监听网络上的TCP请求并接受图像信息,Sender用于发送图像信息voice菜单,激活语音通讯,显示如下:激活语音模块图4.6 Voice菜单在语音模块中单击Call按钮用于语音拨号,当对方接受后可以进行语音的通讯单击Multicast按钮后弹出Multicast视频软件,由图可以看出,主界面包括:图像显示模块、文本输入模块、菜单栏、状态栏等几部分组成。文本输入模块图像显示模块 图4.7 教师多播界面菜单栏中个菜单的作用如下:(1) joinMuti选项:用于用户加入多播组,为多播传输做准备(2) Video选项:WebCam下Ope Webcam用于打开摄像头,Close WebCam用于关闭摄像头;VideoFormat选项可以调用摄像头的选项对摄像头的分辨率和像素深度进行调节;Video Trans选项下Send用于将数据传输到网络中。(3) Present选项:Start开始对屏幕截图,检测桌面变化时进行图像的传输,可用于PPT的播放(4) WhiteBoard选项:shape选项中有画图形的功能,Text 激活文本输入模块,Clear清除画布。4.2.2 学生端软件学生端软件运行后,也可以选择P2P Video和Multicast两种模式,P2P Video模式与教师机界面相同,Multicast模式略有不同:包含Log显示模块,图像显示模块及菜单栏Log显示模块:显示多播组内信息图4.8学生端页面Video or Present 菜单:单击join Multi加入多播组用来接收图像,Screen选项可以控制显示窗口的大小。Join Multi:加入多播组Screen:控制显示窗口大小图4.9 Video or Present菜单 4.2.3 服务器端软件服务器端软件运行后,用于绑定Access数据库,建立TCP通道,以便教师端和学生端软件经行数据库的查询。界面如下:连接数据库建立TCP通道输入数据库密码选择数据库文件图4.10服务器端软件界面5详细实现5.1新建应用程序78打开Visual Studio 2008,在菜单栏中选定文件-新建-项目,打开项目窗口,如图4.4所示;图5.1 新建应用程序在左侧项目类型中选择C# Windows-在平台选项中选择.net framework2.0 windows窗体应用程序,单击确定后建立。5.2 IP数据子系统7IP数据子系统采用Access数据库。本系统分为客户端和服务器两个部分,客户端嵌入到教师和学生系统当中:服务器端界面如下:图5.2 服务器界面界面所用控件如下:表5-1 控件列表序号控件名称控件类型控件描述1txtAccessMdbFileNameTextbox显示数据库路径2btnSelectAccessFileButton获取数据库3radioButton1RadioButton确定数据库无密码4radioButton2RadioButton确定数据库有密码5btnTestConnectionTextbox连接数据库6btnUpdateConnectionButton关闭7txtAccessPasswordButton密码输入在程序建立时,需要引用对应的命名空间:1using System.Data.OleDb;此命名空间是用于 OLE DB 的 .NET Framework 数据提供程序。2. using System.Runtime.Remoting;名字空间提供了类和接口,使开发人员能够创建和配置分布式应用程序3using System.Runtime.Remoting.Channels;命名空间包含的类和处理渠道,支持和渠道汇,这是用来作为运输中当客户端调用的方法的远程对象4.using System.Runtime.Remoting.Channels.Tcp; 命名空间包含使用 TCP 协议向远程位置传输消息和对象以及从远程位置传输消息和对象的信道。5.using System.Runtime.InteropServices; 命名空间提供各种各样支持 COM interop 及平台调用服务的成员在解决方案中建立RemoteObject和TestServer两个新项目,RemoteObject中添加CRemoteAccess.Cs类文件,此类文件定义远程访问数据库所用的方法,下图所示:图5.3 服务器界面主要方法如下:public void SetRemoteAccessConnString(string Connstr)设置连接字符串public string GetRemoteAccessConnString()获取连接字符串private void SetDataObjects()配置连接数据库的各对象 m_connection = new OleDbConnection(m_ConnString);建立连接对象 m_command = new OleDbCommand(m_sqlQuery, m_connection);生成命令对象m_adapter = new OleDbDataAdapter(m_command); 表示一组数据命令和一个数据库连接m_builder = new OleDbCommandBuilder(m_adapter); 自动生成用于协调对DataSet的更改与关联数据库的单表命令m_ds = new DataSet(MainDataSet);建立内存数据表存放数据public bool TestConnectionIsOK(string connstr)测试连接是否成功private void LoadData(string SqlStr, string TableName)从内存数据表中读取数据 m_sqlQuery = SqlStr;/ select * from Test;输入SQL语句m_adapter.Fill(m_ds, TableName);填充数据表m_userTable = m_ds.TablesTableName;读取数据表public void SaveData(DataTable ClientDataTable)数据的保存 public DataTable GetUserTable(string SqlStr, string TableName)读取数据表在TestServer项目中,通过对access数据的读取建立TCP通道,使用户端可以即时的访问远程的数据库并读取其中的信息TestServer项目的主要方法如下:图5.4 TestServer方法public frmTestServer()窗口建立时产生的事件TcpChannel channel = new TcpChannel(9000);设定端口为9000的TCP通道ChannelServices.RegisterChannel(channel); 向信道服务注册信道 RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteObject.CRemoteAccess), RithiaTestAccessServer, WellKnownObjectMode.Singleton); 将服务端上的对象注册为已知类型private void btnTestConnection_Click(object sender, EventArgs e)单击测试按钮产生事件if (remotableObject.TestConnectionIsOK(ProviderStr)调用remotableObject类中的TestConnectionIsOk方法测试连接是否成功 remotableObject.SetRemoteAccessConnString(ProviderStr);设置连接字符串程序运行后管理员选择上IP数据库,程序自动建立TCP通道。5.3教师学生点对点子系统教师点对点子系统,学生点对点子系统中采用了采用了UDP传输协议,TCPChannel技术以及引用DllImport(user32)和DllImport(avicap32.dll)技术来实现视频的P2P的传输。TCPChannel技术用于与服务器的access数据库进行数据的交换,获取数据中IP信息图像信息使用UDP技术传输的目的是为了提高网络传输速度,因为:UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比TCP负载消耗少; UDP是一个无连接协议,传输数据不建立连接,吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。User32和avicap32动态链接库文件分别是:User32.dll Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性;avicap32.dll是Windows API应用程序接口相关模块,用于对摄像头和其它视频硬件进行AVI电影和视频的截取。本子系统的登录界面如下:图5.5 登录界面单击P2P Video按钮进入功能页面,其创建是通过在Video_Conference 项目(教师)和Video_Conference1项目(学生)的右键菜单中“添加-windows窗体来创建”,其中控件如下:表5-2 控件列表序号控件名称控件类型控件描述1menuStrip1menuStrip显示菜单栏2listBox1Listbox显示数据库中的IP3picCapturePicturebox显示本机摄像头图像4picture_commingPicturebox显示对方摄像头图像5button6ButtonTAPI语音拨号6button7ButtonTAPI语音关闭7listBox2ListboxTAPI语音日志8statusStrip1Statusstrip显示传输状态9device_number_textBoxTextbox显示摄像头设备号10IP_textBoxTextbox显示IP地址11IPtimerTimer用于查询IP数据库计时12TimerTimer用于视频传输在menuStrip1中创建子选项 Video用于视频的控制 voice用于语音的控制图5.6 video和Voice菜单制作本系统前,需要添加RTP类库,在“解决方案”-“引用”中单击右键,打开添加类库窗口 如图:图5.7 添加引用添加Interop.TAPI3Lib.dll类库文件。程序需要引用对应的命名空间:using System.Runtime.Remoting;using System.Runtime.Remoting.Channels,命名空间包含的类和处理渠道,支持和渠道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 押题宝典高校教师资格证之《高等教育法规》模考模拟试题及答案详解【夺冠】
- 基础强化人教版7年级数学上册期末试题及参考答案详解【能力提升】
- 考点解析华东师大版8年级下册期末试题【达标题】附答案详解
- 推拿治疗学考试题及答案详解【历年真题】
- 押题宝典高校教师资格证之《高等教育心理学》通关考试题库及答案详解(典优)
- 园林绿化作业人员题库检测试题打印附答案详解AB卷
- 2025版挖掘机买卖及安全培训与环保技术研发一体化服务合同
- 2025版智能化城市景观设计顾问服务合同范本
- 2025年新型电子商务股份合作框架合同
- 2025年工业喷漆生产线承包合作合同范本
- 2025年9.3纪念抗日战争胜利80周年阅兵式观后感-钢铁长城下的历史沉思与青春誓言
- 皮肤 T 细胞淋巴瘤诊疗指南(2025年版)
- (完整版)钢结构厂房施工组织设计(含土建)
- 水饺加盟合同协议
- DLT 572-2021 电力变压器运行规程
- 加强师德师风建设学校师德师风警示教育讲座培训课件
- 现场勘查学(全套课件)
- 《网络综合布线技术》教学教案
- 中国传统文化完整版课件全套ppt教学教程汇总最新最全
- 洗煤厂安全安全生产岗位责任制(很全)
- MaxPlax噬菌体包装试剂盒中文说明书(epicentreofillumina)
评论
0/150
提交评论