基于bs模式的虚拟网络实验系统中的办公建筑_第1页
基于bs模式的虚拟网络实验系统中的办公建筑_第2页
基于bs模式的虚拟网络实验系统中的办公建筑_第3页
基于bs模式的虚拟网络实验系统中的办公建筑_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于bs模式的虚拟网络实验系统中的办公建筑

0系统优化设计近年来,虚拟实验技术在计算机网络教育中得到了广泛应用。虚拟远程实验平台可以为学生提供独立、灵活、互动的实验环境和丰富的网络教育资源,打破传统计算机网络实践的界限。然而,对于很多计算机网络知识的初学者来说,即使掌握了一定的网络基本原理,进入到实验环境中,仍然存在由于网络设备配置命令行不熟而导致实验效率不高甚至无法进行的情况。尤其是不同网络设备提供商开发的产品,具有不同的语言规范,初学者更容易混淆。而在没有教师在旁及时指导答疑的虚拟环境中,则更需要在实验交互和用户体验上的智能化。目前,虽然一些单机版主流模拟软件如思科的BosonNetsim,能够达到高仿真的效果,运用“Tab”键补全命令行的单个单词,输入“?”提示符查看可供选择的命令行,而在基于B/S模式的虚拟在线实验系统中这一功能仍是空缺。本文运用WindowsForms技术及C#编程语言,提出一种系统优化方案,即在原有的设备命令键入模块中增加智能提示功能。当学生配置虚拟网络设备时,输入简短字符,系统便可自动匹配可供选择的完整命令符,从而提高学生虚拟实验的效率。相对于单机版的软件,该功能的实现使得实验更加快捷方便,有效地辅助了在线网络虚拟实验的开展。1b/s模式下的远程实验资源共享平台建设本学院网络实验开发小组,针对不同的通信设备厂商开发了不同系列的虚拟计算机组网实验。这些实验主要运用了WindowsForms的控件技术,对交换机、路由器的端口及协议配置进行模拟和仿真,然后将控件封装成.dll后缀格式的动态链接库文件,嵌入到.Net网页中,建成并完善了基于B/S模式下的远程实验资源共享平台。以思科的静态路由实验为例,如图1所示。图1展示了虚拟实验操作过程中的界面,图右侧是静态路由实验的组网拓扑结构,共有三台路由器,两台交换机,四台PC机;图左侧是路由器的命令输入框,我们正在对路由器R2进行端口的配置。该路由器命令配置框我们采用WindowsForms中的TextBox控件来搭建,在后台对其进行相关的属性修改和事件添加。由图中可见,此时在路由器配置过程中,并没有相关的命令提示功能,对于计算机网络的初学者或者对思科设备命令不熟悉的学生,他们可能需要借助相关书籍或命令手册才能顺利完成实验,一定程度上降低了实验的效率。2强制配置指南技术的设计和实现2.1自动读取“>”、“#”和未显示文本时的后来者命令行提示技术要求当学生输入非完整的配置命令时,系统能够根据已输入的字符,去命令集中自动查找和匹配完整命令。该功能的实现流程如图2所示。在该操作流程中,系统的首要工作是获取用户当前输入的不完整单词。当配置思科路由器时,系统视图和用户视图下,分别会遇到“>”号和“#”号,例如“R1>”、“R1#”或“R1(config)#”等。因此若光标前是“>”、“#”或空格时,认为是等待用户输入状态。当用户输入字符后,我们将实现自动截取“>”、“#”和最后一个空格符后的字符串。该流程的第二部分是,在命令集里面查找包含该字符串前缀的配置命令,若查找不到,不显示命令提示框,继续等待用户输入,否则用查询到的结果项覆盖前一次提示框里的显示项,并显示包含新查找项的命令提示框。第三部分,主要是用户根据提示框中的内容进行自主的选择。若用户想使用快捷方式补全单词,则按键盘中的方向右键使焦点从配置框转移到提示框中,此后可用方向键中的上、下键在各个提示项之间做切换,使用回车键或鼠标左键点击动作来完成单词的补全,补全后焦点重回路由器命令配置框并同时隐藏提示框。2.2命令提示框为了实现上述流程,我们在WindowsForms中改用RichTextBox来搭建路由器的命令配置框,是因为RichTextBox控件在允许用户输入和编辑文本的同时提供了比普通的TextBox控件更高级的格式特征。而命令提示框采用PromptBox来搭建,此控件由WindowsForms中的ListBox继承而来。下面对各个细节部分的实现及算法作详细介绍。1文件的加快生成的kpk-tof-ro在命令配置框中,以路由器R1的配置框RichTextBox_R1为例,我们对该控件注册了三个事件,分别为KeyDown事件、KeyPress事件以及TextChaged事件。该事件主要功能是对路由器配置协议进行逻辑编写,因为此处与未添加命令行提示功能时的TextBox控件的KeyPress事件类似,该部分不是本文研究的重点,不再赘述。KeyDown事件主要实现的是用方向右键来完成焦点从RichTextBox到PromptBox的转移。当且仅当PromtBox已经生成且为可视状态,即提示框具有可补全的命令项时,键盘中的方向右键触发焦点的转移。主要代码如下:命令配置框的TextChaged事件是用来监控输入字符的变化,并完成提示框的显示。系统需要截取“#”、“>”和最后一个空格符后的字符,以“#”为例,获取字符的主要语句如下:此外,当在命令库中找到可补全的命令时,我们需定位提示框的显示位置,要求其可以跟随光标移动,并在当前输入行的右下侧显示,当输入行接近RichTextBox的底部时,调整为输入行的上侧显示。具体实现代码如下:其中,常数值15和460与命令配置框、命令字符以及命令提示框的大小有关。2补全命令显示命令提示框promptbox由listbox继承而来,其中增加了一个属性prefix,用来保存被补全的命令字符。promptbox共包含两个事件,分别为Click鼠标点击事件和KeyDown键盘触发事件。当触发这两个事件时,用户在promptbox列表里选中需要补全的完整命令,并将其显示在命令配置框richtextbox里。由于该实验用到三台路由器,因此设置了一个变量标签flagfocus,用其值来判定当前正在对哪一个路由器进行配置,flagfocus为1则代表了对R1进行配置,以此类推。Click事件和KeyDown事件中补全命令的代码相类似,如下所示:此外,系统要求用户可以用上、下键切换选中自己想补全的命令提示项,由于提示框PromptBox是由ListBox继承而来,具备该功能,我们所要做的工作是,当PromptBox提示框显示时,如果此时按的不是方向键中的上下键,那么焦点返回到richTextBox上,究竟返回到那个richTextBox上,仍由flagFocus这个标签来决定。主要语句如下:3模式2,基于统一的二查法设计如上已经阐述了命令配置框和命令提示框的搭建方法,以及各自的事件编程,研究的另一重点是如何根据用户输入的字符在命令库里面进行查询和匹配。思科的路由器配置命令众多,因此第一步的工作是,从这些配置命令中将常用的单词都提取出来,作为命令提示中的代码库,在C#程序中,我们用一个String类型的数组collection来存储该代码库。由于我们考虑采用二分查找方法来实现单词的查询和匹配,因此,该库中的所有思科命令单词都事先按升序排列好,为查找算法作服务。这里用一个动态链表list来存储查找到符合要求的命令单词,初始化时,令其值为整个命令集合collection:List<string>list=newList<string>(collection)二分查找又称折半查找,其思想是将表中间位置的关键字与查找关键字比较,若二者相等,则查找成功;否则将表对半分成前、后两个子表,如果中间位置关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。在设计中,二分查找算法的判定语句为:list[middle].StartsWith(prefix,StringComparison.OrdinalIgnoreCase)该语句是判断链表的中间项list[middle],该单词在忽略大小写的情况下,是否是以用户已输入的字符prefix为前缀的,若是,返回布尔值true,否则为false。由于以prefix为前缀的单词可能不至一个,所以我们在运用二分查找算法思想时,要作相应的修改。亦即,若中间位置的记录满足判断条件,继续查找其两侧相邻位置的记录是否也符合条件,若符合,继续往两端查找,直至查找结束并修改list链表的起始位置,否则,将链表一分为二。最后,将更新后的链表list的值添加到promptbox中,实现语句为:3用户用“s”字符显示位置添加了命令行提示效果的虚拟实验界面如图3所示。由图3中可见,在对路由器R2进行配置时,当用户输入“s”字符,思科命令中包含“s”前缀的单词都显示在提示框内。当前高光显示的是第一项“secret”,用户可以按方向右键之后,再用方向上下键切换到自己需要的命令上,按回车或用鼠标点击完成命令补全。由此可见,本文设计的功能流程和方案算法是正确可行并行之有效的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论