多媒体教学控制系统网络通讯平台的设计论文.docx
- 文档编号:29172040
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:45
- 大小:483.31KB
多媒体教学控制系统网络通讯平台的设计论文.docx
《多媒体教学控制系统网络通讯平台的设计论文.docx》由会员分享,可在线阅读,更多相关《多媒体教学控制系统网络通讯平台的设计论文.docx(45页珍藏版)》请在冰豆网上搜索。
多媒体教学控制系统网络通讯平台的设计论文
摘要
随着计算机及网络技术的日益发展,教学条件得到了很大的改善,但同时也带来了新的问题,如在教学过程中,教师不能随时监督学生。
通过“教学控制系统”这个软件,我们可以通过网络来进行教学,引导学生的思路,让他们参与课堂活动。
通过这个软件系统,教师可以将理论和实践教学结合起来。
“多媒体教学控制系统”代表着一种崭新的教学方式。
它利用一套软件,在现有的电脑网络设备上,实现教师机对学生机的广播、监控、语音教学等操作,辅助学生完成电脑软件的学习和使用。
此系统融合了数字化、网络化的先进思想,突破传统教室对时空的限制,既实现传统课堂教学中老师与学生、学生与学生间的交流,又符合电脑教学轻松、互动的自身特点,是一次教学方式的飞跃。
关键字:
多媒体网络技术教学系统
Abstract
Alongwiththedevelopmentofcomputerscienceandnetworktechnology,theeducationalenvironmentandthedevicehavebeengettingagreatimprovement.Meanwhile,moreandmoreproblemscomeintobeing.Forexample,duringthecourse,teachermustthinkabouthowtoorganizetheinteractivebetweenteacherandstudentinteaching?
Teachersareoftennotabletoknowwhatproblemsthestudentsaredisturbing.Bymeansofthissoftware(ortool),calledMulti-MediaEducationControlSystem(abbrev.MECS),wemightorganizealessonincomputernetwork,andproperlycontrolthethinkingofstudentsandallowstudenttotakepartintheprocedureofteaching.Aftertheaidofthissoftware,teachermightorganizethetheoreticandpracticeteachingasawhole.
“Themulti-mediateachingcontrolsystem"representsakindofbrand-newteachingmethod.Bymakinguseofthissoftware,whichbasingontheexistingcomputernetworkandequipments,teachercansuperviseandcontrolthestudent’scomputer,broadcastmulti-mediainformation,andhelpstudentstomastersomesoftware.Thissystemshowsusanadvancedthoughtofdigitandnetworktechnology,breakdownthelimitoftimeandarea.Itnotonlycarriesoutthetraditionalclassroomteachingbetweenteacherandstudents,butalsomatchesthecharacteristicsofcomputerteaching,whichissaidrelaxedandinteractive.Itisagreatprogress,andbreakthroughthetraditionalteachingmethod.
Keywords:
Multi-MediaNetworktechnologyEducationSystem
第一章前言
1.1提出问题
随着计算机技术的发展和视听技术在计算机领域的应用,形成了新兴的多媒体教学应用技术,多媒体技术在教学中的应用,是将文字、声音、图像、图形等多种表达知识的媒体结合在一起,通过计算机进行处理和控制,实现一系列交互性的操作。
由于多媒体具有信息载体多样性、交互性、集成性的特点,它使得多媒体教学拥有了生动的画面、动听的音响和强大的教学功能。
纵观现有的多媒体教学软件,均缺少控制。
教师在利用网络一端授课,而学生却可以使用计算机做与课程无关的活动。
这给多媒体教学带来了严重的不足,为控制这种现象,我们利用毕业设计的机会,开发多媒体教学控制系统来弥补这方面的不足。
多媒体教学控制系统的开发将解决教师在授课过程中互动性不强的缺点,并将提高学生学习的积极性,使他们可以在课堂上与老师进行通话,增加彼此的交流,提高教学的效率。
1.2相关概念定义
1.2.1完成端口(CompletionPort)-[5]
一句话概括完成端口:
我们不停地发出异步的WSASend/WSARecvIO操作,具体的IO处理过程由WINDOWS系统完成,WINDOWS系统完成实际的IO处理后,把结果送到完成端口上(如果有多个IO都完成了,那么就在完成端口那里排成一个队列)。
我们在另外一个线程里从完成端口不断地取出IO操作结果,然后根据需要再进行WSASend/WSARecvIO操作。
1.2.2组播(MultiCast)-[6]
组播(也称多址广播或IP多播)技术,是一种允许一台或多台主机(多播源)发送单一数据包到多台主机的TCP/IP网络技术。
组播作为一点对多点的通信,是节省网络带宽的有效方法之一。
在网络音频/视频广播的应用中,当需要将一个节点的信号传送到多个节点时,无论是采用重复点对点通信方式,还是采用广播方式,都会严重浪费网络带宽,只有多播才是最好的选择。
组播能使一个或多个组播的源头只把数据包发送给特定的组播,而只有加入该组播的主机才能接收到数据包。
1.2.3位图(Bitmap)-[7]
位图也叫像素图,它由像素或点的网格组成,与矢量图形相比,位图的图像更容易模拟照片的真实效果。
一幅位图图像包括的像素可以达到百万个,因此,位图的大小和质量取决于图像中像素点的多少,通常说来,每平方英寸的面积上所含像素点越多,颜色之间的混合也越平滑,图像效果越好,同时文件也越大。
1.2.4套接字(Socket)
套接字有三种类型:
流式套接字,数据报套接字及原始套接字。
流式套接字定义了一种可靠的面向连接的服务,实现了无差错无重复的顺序数据传输。
数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。
原始套接字允许对低层协议如IP或ICMP直接访问,主要用于新的网络协议实现的测试等。
无连接服务器一般都是面向事务处理的,一个请求一个应答就完成了客户程序与服务程序之间的相互作用。
1.2.5控制命令(ControlInstruction)
控制命令是本系统中客户机,服务器,控制台交流之间依赖的方式,所有的动作请求和请求相应都通过控制命令来完成。
这些控制命令涵盖了本系统所有的请求动作,也体现了在教学活动中的一般活动。
这些控制命令是开发者自己根据用户需求和系统需要定义的,包括用户命令和系统命令两类。
例如提问请求就是用户命令,连接请求或加入多播的请求就属于系统命令。
其他详细的命令参考详细设计内容。
1.2.6数据包(DataPackage)
数据包是系统中数据和命令传送的结构体,和控制命令一样也是用户自己定义的表达方式。
所有的控制命令和数据都通过一定的方式组织成数据包,然后用特定的方式存储和发送。
对数据包的操作有数据包的组织和分析。
数据包的内容包括,数据包的包头(定义了数据包的类型),数据包的大小,数据包的来源(用发送者的ID表示),以及发送的数据。
数据包的分类有消息包和数据包两者,消息包的内容是控制命令,数据包的内容是数据。
第二章需求分析
2.1引言
多媒体教学控制系统是对通信和计算机结合的一种应用,通过对本系统各个模块进行抽象和逐步求精,从而得出了系统的主要设计要求,并逐步明确需求分析阶段的主要任务。
需求分析的编写目的是:
便于用户、分析人员和软件设计人员之间进行理解和交流,有利于目标软件系统的最后确认及系统进化过程的控制。
用户通过需求说明书在分析阶段即可初步判断目标软件能否满足自己的要求,设计人员通过需求说明书确立软件设计的基本出发点。
2.2系统功能概述
多媒体教学控制系统必须完成的功能包括:
1.学生连接服务器,得到连接标志后,获取登录信息并打包发送给服务器,在控制台处进行注册。
2.服务器控制台指定一台客户端作为教师机,并设置为多播的源头。
3.在控制台发出开始上课的命令给教师机,老师机就开始获取多媒体信息,并进行打包发送到多播网络。
4.教师在授课时可以向学生进行提问。
5.学生在上课时,可以举手提出问题,首先发出举手的命令,服务器同意时,发出解锁命令,学生得到解锁命令后,在弹出的文本框中输入问题,并将其发送至组播分组。
6.教师可以将学生提出的问题进行解答并打包发送至多播网络。
7.在学生提出问题时,服务器可以指定该学生的机器为多播的源头。
2.3系统的体系结构
我们选择了Client/Server体系结构,作为此次开发的体系结构。
Client/Server体系结构的优点是:
系统功能强大、交互能力强、系统运行效率高,并且开发工具和开发手段可选择性强。
缺点是:
所开发出来的系统相对比较封闭,主要适合于数据管理方式;系统结构复杂,开发周期长;安装和维护比较麻烦。
2.4数据流图
2.5数据字典
名字
描述
定义
位置
1.
数据包
多媒体数据
ID+size+视频/音频数据/文本
发送至多播组
2.
命令包
控制命令的封装,包括所有控制命令
命令类型+ID+SIZE+内容
客户机和控制台
3.
用户登陆
用户输入用户信息,登陆到客户机
USER_LOGON+ID+size+内容(ID+IP+姓名)
客户机和控制台
4.
用户退出
退出命令
USER_LOGOFF+ID+size+内容
客户机和控制台
5.
学生举手
学生举手命令
USER_STU_ASK+ID+size+内容
客户机和控制台
6.
学生回答
学生回答命令
USER_STU_ANSWER+ID+size+内容
客户机和控制台
7.
允许提问或回答
学生举手被允许命令
USER_TEACHER_ADMIT+ID+size+内容
客户机和控制台
8.
教师提问
教师提问命令
USER_TEACHER_ASK+ID+size+内容
客户机和控制台
9.
教师回答
教师回答命令
USER_TEACHER_ANSWER+ID+size+内容
客户机和控制台
10.
开始上课捕捉屏幕
开始上课捕捉屏幕命令
USER_TEACHER_CLASSBEGIN+ID+size+内容
客户机和控制台
11.
锁定鼠标
锁定鼠标命令
SYS_CURSOR_CLIP+ID+size+内容
客户机和控制台
12.
释放鼠标
释放鼠标命令
SYS_CURSOR_FREE+ID+size+内容
客户机和控制台
13.
锁定键盘
锁定键盘命令
SYS_KEYBOARD_CLIP+ID+size+内容
客户机和控制台
14.
释放键盘
释放键盘命令
SYS_KEYBOARD_FREE+ID+size+内容
客户机和控制台
15.
屏幕最大
屏幕最大命令
SYS_SCREEN_MAXSIZE+ID+size+内容
客户机和控制台
16.
恢复屏幕
恢复屏幕命令
SYS_SCREEN_NORMAL+ID+size+内容
客户机和控制台
2.6系统模块划分
根据系统功能的概述,本系统大致需要以下几个模块:
基础网络通讯模块,组播分组模块,控制命令模块,多媒体信息获取模块。
基础网络通讯模块主要实现教师学生之间的信息交流和一些控制命令的传送;组播分组模块主要作用就是传送多媒体信息数据和一些问题的解答;控制命令模块,主要完成一些控制命令的定义及解释;多媒体信息获取模块主要就是实现对屏幕信息的捕捉及压缩。
第三章总体设计
总体设计的任务就是通过需求分析得到的各种可能的方案,进行选择,选出一个最佳的方案进行设计。
为这个方案进行制定总体计划,流程图和规划。
3.1软件的设计与规划
设计该软件的原则:
◆软件的对象就是用户,一切的设计都应该尽可能的为了方便用户的操作
◆软件设计的基础就是算法,因此,算法的好坏也就决定了该软件的好坏
◆软件设计的目的就是实现多台客户机连接一台服务器,并要这台服务器快速对每一客户机的连接信息进行处理。
3.2软件设计的方法与内容
在开发软件设计时,我们采用了自底向上分析方法,首先分析了系统要实现的功能,并将这些功能划分成模块。
我们小组成员首先完成自己的模块,在完成之后,再将各自的模块结合起来,以构成整个系统。
我需要完成的是网络通讯模块,网络通讯模块需要构建一服务器,该服务器要求可以接受上百个客户端的连接,据目前网络通信现有的技术,只有完成端口模型才可以实现这样的功能。
其次,系统要实现捕捉任一台电脑的屏幕并将其发送至所有连接服务器的客户桌面上,这是网络通信中一对多的关系,如采用一般的广播方法进行传送信息,一会大量占用资源,二传播的速度也达不到实时的要求。
所以我采用多播技术,将所有连接服务器的客户端都加入同一个多播组,然后指定某一客户机作为多播组的源头,即可以将其屏幕内容发送至所有客户机,从而达到系统实现的要求。
3.3系统功能结构图
通过第二章的需求分析,得到了系统需要实现的功能及模块的划分,根据数据流图画出系统功能结构图。
第四章详细设计
在这个设计阶段,通过上面所写的总体设计内容,应该具体的实现该要求的系统,也就是经过这个阶段的设计工作,应该得出各个模块的精确描述,从而在编码阶段可以把这个描述翻译成用某种程序设计语言书写的程序。
4.1基础网络通讯模块的设计
根据前面分析,网络通讯模块的设计,本系统中对网络通讯模块中服务器和客户端的通讯功能进行封装成类。
4.1.1服务器端模型函数介绍
Microsoft为完成端口模型提供了相应的API函数,主要的就两个,我们逐一的来看一下。
1.完成端口创建及关联函数
HANDLECreateIoCompletionPort(
HANDLEFileHandle, //handletofile
HANDLEExistingCompletionPort,
//handletoI/Ocompletionport
ULONG_PTRCompletionKey,
//completionkey
DWORDNumberOfConcurrentThreads
//numberofthreadstoexecuteconcurrently
);
这个函数要注意其实际用于两个截然不同的目的:
(1)用于创建一个完成端口对象。
(2)将一个句柄[HANDLE]和完成端口关联到一起。
2.获取完成端口操作结果函数
在创建了完成端口、将一个或多个套接字与之相关联之后,我们就要创建若干个线程来处理完成通知。
这些线程不断循环调用GetQueuedCompletionStatus()函数并返回完成通知。
BOOLGetQueuedCompletionStatus(
HANDLECompletionPort, //handletocompletionport
LPDWORDlpNumberOfBytes, //bytestransferred
PULONG_PTRlpCompletionKey, //filecompletionkey
LPOVERLAPPED*lpOverlapped, //buffer
DWORDdwMilliseconds //optionaltimeoutvalue
);
4.1.2服务器端调用流程图
4.1.3服务器的初始化
在服务器启动时,首先必须有的一个函数就是初始化函数,它要创建一个完成端口和一个套接字,并将两者关联起来,并使之处于监听状态,以响应客户端的连接请求。
在创建完成端口的同时,会创建几个新的线程,来响应客户端的连接。
在线程中为一个新建立的套接字动态分配一个“单IO数据”和“单句柄数据”的数据结构。
为考虑节约内存,我们在程序开始执行前,建一个单链表,在客户端连接时,先查看这个链表是否为空,如果不为空,则从链表中解出一个结点,否则再动态分配内存。
在关闭套接字时,不释放数据结构,把它插入到链表中,以便下次使用,这样就可以提高使用效率。
下面给出完成端口初始化的流程图:
4.1.4服务器端收发数据
在服务器端初始化之后,我们还需要有一个能够指示IO操作和处理数据的函数,在这个类中,我们使用了两个函数来实现数据的收发功能。
首先,在线程中有客户端连接并传送数据时,服务器将接收到的数据保存在单IO操作数据结构中,可调用函数对接收到的数据进行处理,并指示下一步的IO操作,而IO操作具体的实现则在另一个函数中给出,这样就极大地方便了用户接收处理数据。
下面简单给出其流程图:
4.1.5服务器主线程
在服务器初始化完成后,便进入子线程等待客户端的连接,当部分客户端连接服务器后,一直没有收发数据的行为,而一直占用服务器的资料,这样会给服务器造成极大的消耗,影响其他客户端的连接,严重时甚至可能出现停止服务或者部分客户端信息的丢失。
为预防此类现象发生,在主线程中,我们对每一连接进来的客户端进行检测,如果在规定时间内没有数据收发,则强行关闭此客户端,以方便其他客户端的连接;如果某一时间有大量客户请求连接,主线程则激发事件发出更多的连接等待。
主线程的流程如下图所示:
4.1.6客户端基础通讯程序图
4.1.7客户端初始化
客户端首先建立一个连接套接字,然后通过绑定到指定端口。
在这个套接字上注册网络异步事件,并开始连接服务器。
在注册网络异步事件时,调用了窗口消息函数,以实现对异步事件的处理,而窗口消息函数又通过调用客户端基础通讯中的异步事件处理函数,对异步事件进行分析,调用不同的函数进行不同的操作。
具体流程图见图4-5中客户端套接字初始化流程。
4.2组播设计
4.2.1组播地址的选择
组播通信必须依赖于组播地址,在IPv4中它是一个D类IP地址,范围从224.0.0.0到239.255.255.255,并被划分为局部链接组播地址、预留组播地址和管理权限组播地址三类。
其中,局部链接组播地址范围在224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;预留组播地址为224.0.1.0~238.255.255.255,可用于全球范围或网络协议;管理权限组播地址为239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制组播范围。
通过对本系统组播应用的分析,可以确定我们所需要的组播地址应为预留组播地址。
4.2.2组播调用流程图
4.2.3组播初始化
在组播初始化中,首先应该初始化winsock2资源,然后再创建组播套接字并对此套接字进行一系列的设置后加入指定组播,再发出网络异步事件。
在创建了一个新的多播套接字后,还需要对此套接字进行一些设置,如设置组播返回,设置组播数据报传播范围,设置可重用端口等。
在完成这一系列的设置后,再加入指定的组播,并指定其为发送者、接收者还是两者俱之。
最后还应激发网络异步事件。
具体流程图见图4-6中组播初始化流程。
4.3屏幕捕捉的设计
将屏幕图片的信息捕捉并保存在内存中,通过向多播组内发送位图信息和位图像素数据,以实现在多台电脑上显示同一内容的目标。
4.3.1捕捉信息的结构
捕捉到的多媒体信息由两个部分组成:
位图信息+位图像素数据。
位图信息所记录的值用于分配内存,设置调色板信息,读取像素值等。
它也由两部分组成的:
位图信息头+颜色表。
位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。
如果单个像素的字节数大于16,则此位图一般没有颜色表。
颜色表的作用就是创建调色板。
位图的主体部分即位图数据。
根据不同的位图,位图数据所占据的字节数也是不同的,比如,对于8位位图,每个字节代表了一个像素,对于16位位图,每两个字节代表了一个像素,对于24位位图,每三个字节代表了一个像素,对于32位位图,每四个字节代表了一个像素。
4.3.2捕捉屏幕流程图
4.3.3屏幕位图显示流程图
4.3.4屏幕捕捉及发送流程图
第五章编码
之所以重视编码这个阶段,是因为一个程序的质量的好坏,主要取决于软件设计的质量。
但是程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。
编码的目的是实现人和计算机的通信,指挥计算机按人的意志正确工作。
在本毕业设计中,编码这个阶段也显得尤为重要,编码的好坏直接会影响到程序处理图像的速度和精度。
因此,选择正确的程序语言进行编码是非常必要的。
5.1基础网络通讯模块主要编码的实现
5.1.1服务器端初始化
服务器端初始化,主要任务就是创建一个完成端口。
创建时,要确定线程的数目,一般原则,线程的数目为处理器的两倍再加2。
确定线程数目之后,还需要调用InitWinsock()函数创建一个监听套接字,并与完成端口关联起来;最后调用BindAndListenSocket()绑定套接字。
下面给出初始化的代码:
m_hCOP=CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,NULL,0);
if(NULL==m_hCOP)
{
TRACE("CreateIoCompletionPort()failed:
%d\n",GetLastError());
returnFALSE;
}
//取得系统中CPU的数目,创建和CPU数目*2+2的线程
SYSTEM_INFOSysInfo;
GetSystemInfo(&SysInfo);
if(MAXTHREAD_COUNT { SysInfo.dwNumberOfProcessors=MAXTHREAD_COUNT; } for(inti=0;i<(int)SysInfo.dwNumberOfProcessors*2+2;i++) { m_hThreadArray[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 教学 控制系统 网络通讯 平台 设计 论文