web浏览器设计与实现_第1页
web浏览器设计与实现_第2页
web浏览器设计与实现_第3页
web浏览器设计与实现_第4页
web浏览器设计与实现_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、一、目的与任务1 目的( 1)加深对计算机网络的基本概念和原理,以及网络编程接口 Socket 概念及编程原理的理解;( 2)提高学生网络应用与编程、分析与解决实际问题的能力,为大型网络编程打下坚实基础;( 3)通过撰写课程设计报告,锻炼学生的逻辑组织和语言表达能力;( 4)培养学生理论运用于实践的综合应用和设计创新能力。通过本次课程设计,使学生进一步理解、领会C#语言和网络编程技术,把所学的知识 运用到具体的程序设计当中去,编写一个接近实际的应用程序。本课程设计是一门综合性实验。通过本次课程设计,掌握.net应用程序设计;加深对TCP/IP协议的理解;掌握C/S编 程模式;掌握Socket

2、机制、传输控制协议;用户数据报协议;掌握网络抓包的原理;掌握网络编程应用程序分析、设计、编程和调试的整个过程。2任务( 1)设计完成与网络应用相关题目的网络应用软件;( 2)调试运行之后,要求边演示边解释设计的思想、过程及采用的方法;( 3)完成课程设计报告。二、基本要求1 熟练掌握网络的基本概念和原理;2熟练掌握网络编程接口 Socket 概念及编程原理;3掌握基于 TCP/IP 的 Internet 编程技术;4掌握各种软件开发工具的使用过程及方法。三、设备及工具硬件:微机120台以上,I3以上处理器,1024M以上内存、Ethernet网卡,交换机 软件:Windows2000/XP操作

3、系统,VS2010编程环境。摘要随着计算机技术和网络技术的发展,基于网络的开发也越来越多。C#是微软开发的一种简单易懂、面向对象、类型安全的编程语言。随 .NET技术的不断发展,C#在各个方面 的编程优势都已经显现出来。此次课程设计主要是利用C#!行网络与通信编程,完成简单 的 Web 浏览器。在此次设计中,我完成的 Web 浏览器主要是通过HTTP 协议来实现的。 HTTP 协议,即超文本传输协议。它是一个应用层的面向对象的协议,由于其简捷、快速的方式,非常使用于分布式超媒体信息系统。用户使用的大部分浏览器都是通过HTTP 协议对网站中的内容进行浏览,在用户浏览网页时,在浏览器的地址中首先输

4、入的就是HTTP ,以告诉浏览器是通过HTTP 协议来访问网页。在此系统应用中,重点内容是对收藏夹的应用,其中包括对注册表的使用。在 C#中, Registry 类、 RegistryKey 类可以实现对注册表的操作。 Registry 类中封装了注册表中 7 个 基本主键, 通过此类可以在注册表中找到标准根项集。 RegistryKey 类封装了对注册表的基 本操作,包括读取、写入、删除等。通过具体设计,我完成的 Web 浏览器主要能实现的功能为:主界面、浏览网页、网页设置、浏览器设置等几个部分。关键词 网络技术,C#浏览器,HTTP议第 1 章绪 论1第 2 章系统功能介绍 2.2.1 系

5、统模型 22.2 系统功能设计 2.2.3 系统模块 32.3.1 主界面功能介绍 具体模块功能介绍 关于 ActiveX 控件 axWebBrowser 的添加 3.第 3 章系统功能实现 4.3.1 浏览功能实现 主菜单实现基本操作 用“转到”按钮实现浏览 “帮助”功能实现 8.3.2 浏览控制按钮功能实现 9.3.3 历史记录功能实现11第 4 章系统测试 测试用例 .1 测试用例.2 测试用例.3 测试用例.4 测试用例41.2.

6、4.1.5 测试用例 系统测试 .1 系统测试.2 系统测试.3 系统测试.4 系统测试41.5.结 论 1.6.致 谢 错.误!未定义书签。参考文献 1.7.第1章 绪 论C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C+的 强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented珀程序语 言,和C+与Java一样亦为对象导向(object-oriented)程序语言。此次程序设计的主要任务是利用C#

7、实现一个自制的简单的Web浏览器。浏览器是个显示网页伺服器或档案系统内的 HTML 文件,并让用户与此些文件互动的一种软件。个人电脑上常见的网页浏览器包括微软的Internet Explorer、Mozilla的Firefox、Opera和Safari。浏览器是最经常使用到的客户端程序。随着网络技术的发展,网络给人们带来了各种各样的信息,而浏览器是人们获取信息的途径。网页浏览器主要通过HTTP 协议连接网页伺服器而取得网页, HTTP 容许网页浏览器送交资料到网页伺服器并且获取网页。 HTTP 协议的主要特点可概括如下:支持客服端/服务器模式。客服端向服务器请求服务时,只需传送请求方法和路径。

8、请求方法规定了客户与服务器联系的类型,常用的有GET、 HEAD 、 POST 等。HTTP 协议是无状态协议。 无状态的含义是指协议对于事务处理没有记忆能力, 当事务处理结束后, HTTP 协议随之结束。此时在默认状态下,如果后续处理需要前面的信息,则它必须重传,这将会导致每次连接传送的数据量增大。如果服务器不需要先前信息时,它的应答就较快。在此次设计中,我完成的简单的 Web 浏览器就是基于 HTTP 协议的应用,它能实现在地址栏中输入地址后,能连接网站,并显示网页内容;能实现简单的设置、文件、帮助、后退、前进、刷新、首页等功能;此外,还能实现历史记录。使用这样的自制浏览器可以带来一些好处

9、,例如它无需安装,无需升级,没有版权的限制,还可以随时增加或者减少自己需要或者不需要的功能。5第2章系统功能介绍2.1系统模型本系统主要完成简单的 Web服务器,实现在地址栏中输入地址,可以连接到网站,并显 示网页的内容。在此基础之上,还可以实现简单的设置、文件、刷新、首页等功能。整个系 统的功能模块图如图2.1所示。自制Web浏览器浏宽拄窗按钮后前皆刷首搜返迸停新资素王菜单jri设I文II工I 百件具 助2.1系统功能模块图2.2 系统功能设计一个浏览器主要有的功能:主界面、浏览网页、浏览设置、浏览器设置等几个部分。本 系统是基于HTTP实现的浏览器,在浏览器的创建过程中,应用到一个Acti

10、veX控件,这个控件可以完成浏览器的大部分功能,可以通过此控件浏览到网页的内容。在系统中还创建了主菜单栏,并在主菜单栏中创建了对浏览器进行设置的 “设为空白页”、 “设为首页”等功能。同时,在“浏览控制按钮”栏中,创建了浏览器的一些基本功能,“后退”、“前进”、“刷新”、“首页”等。止匕外,用ComboBox控件制作了网页地址栏输入,可以 在此输入需要浏览的网站地址,并且能实现历史记录。此系统的设计流程,如图 2.2所示。图2.2系统设计流程图2.3 系统模块2.3.1 主界面功能介绍主界面是浏览器主体,运行程序,首先看到的是主界面,如图 2.3所示图2.3主界面在主界面的最上边是一个 men

11、uStrip组件,列出浏览器“文件”、“编辑”、“查看”“工具” “帮助”等选项。主菜单栏下是一个 toolStrip控件,用于显示浏览控制按钮。在浏览控制按 钮下是一个Pannel控件,在此控件上,添加一个Lable控件用于显示文字信息“地址”,添加 一个ComboBox控件用于输入网页地址信息,添加一个 Button控件用于发送HTTP协议。2.3.2 具体模块功能介绍在主菜单中,能实现的功能主要有“设置”、“文件”、“工具”和“帮助”。其中,“设置” 能实现设为空白页、设为首页和动感效果;“文件”能实现新建、打开和推出;“工具”能实 现发送邮件;“帮助”能实现“关于",它弹出一

12、个对话,显示关于浏览器的简单说明。在浏览控制按钮栏中,能实现基本的浏览控制:新建、后退、前进、停止、刷新、主页。在地址栏中输入地址,按回车键或者“转到”按钮都可连接到网站并显示网页内容。此 外,点击地址栏的下拉列表可查看历史记录。2.3.3 关于 ActiveX 控件 axWebBrowser的添力口1 .在C# Windows应用程序的新建项目中,选择“工具”,打开“选择工具箱项”对话框。2 .在此对话框中打开“ COM组件”选项卡,在列表框中选中“ Microsoft Web浏览器”复 选框。3 .单击“确定”按钮,在集成开发环境的“工具箱”便会出现“Microsoft Web浏览器”控件

13、,将此控件拖曳到Form窗口上。按照以上步骤操作,就完成了 axWebBrowser控件的添加。第3章系统功能实现3.1 浏览功能实现3.1.1 主菜单实现基本操作/ menu_File /this .menu_File.Index = 0;this .menu_File.MenuItems.AddRange( new System.Windows.Forms. MenuItem this .menu_FileNew, this .menu_FileOpen, this .menu_FileSave, this .menu_FileSaveAs, this .menuItem5, this .

14、menu_FileProperty, this .menu_FileExit);this .menu_File.Text ="文件(&F)"/ menu_FileNew /this .menu_FileNew.Index = 0;this .menu_FileNew.Text ="新建";this .menu_FileNew.Click += newSystem. EventHandler (this .menu_FileNew_Click); / menu_FileOpen /this .menu_FileOpen.Index = 1;this

15、 .menu_FileOpen.Shortcut = System.Windows.Forms. Shortcut .CtrlO;this .menu_FileOpen.Text ="打开";this .menu_FileOpen.Click += newSystem. EventHandler (this .menu_FileOpen_Click); / menu_FileSave /this .menu_FileSave.Index = 2;this .menu_FileSave.Shortcut = System.Windows.Forms. Shortcut .Ct

16、rlS;this .menu_FileSave.Text ="保存";this .menu_FileSave.Click += newSystem. EventHandler (this .menu_FileSave_Click); / menu_FileSaveAs /this .menu_FileSaveAs.Index = 3;this .menu_FileSaveAs.Text ="另存为"this .menu_FileSaveAs.Click += new System. EventHandler (this .menu_FileSaveAs_

17、Click);/ menuItem5 /this .menuItem5.Index = 4;this .menuItem5.Text ="-"/ menu_FileProperty /this .menu_FileProperty.Index = 5;this .menu_FileProperty.Text ="属性(&R)"this .menu_FileProperty.Click += new System. EventHandler (this .menu_FileProperty_Click); / menu_FileExit /this

18、 .menu_FileExit.Index = 6;this .menu_FileExit.Shortcut = System.Windows.Forms. Shortcut .CtrlX;this .menu_FileExit.Text ="退出(&C)"this .menu_FileExit.Click += newSystem. EventHandler (this .menu_FileExit_Click); / menu_Edit /this .menu_Edit.Index = 1;this .menu_Edit.MenuItems.AddRange(

19、new System.Windows.Forms. MenuItem this .menu_EditCut, this .menu_EditCopy, this .menuEditPaste, this .menuItem16, this .menu_EditSelAll, this .menu_EditFind);this .menu_Edit.Text ="编辑(&E)"/ / menu_EditCut/this .menu_EditCut.Index = 0;this .menu_EditCut.Shortcut = System.Windows.Forms.

20、 Shortcut .CtrlX;this .menu_EditCut.Text ="剪切";this .menu_EditCut.Click += newSystem. EventHandler (this .menu_EditCut_Click);/ menu_EditCopy/this .menu_EditCopy.Index = 1;this .menu_EditCopy.Shortcut = System.Windows.Forms. Shortcut .CtrlC;this .menu_EditCopy.Text ="复制";this .me

21、nu_EditCopy.Click += newSystem. EventHandler (this .menu_EditCopy_Click);/this .menuEditPaste.Index = 2;this .menuEditPaste.Shortcut = System.Windows.Forms. Shortcut .CtrlV;this .menuEditPaste.Text ="粘贝占";this .menuEditPaste.Click += newSystem. EventHandler (this .menuEditPaste_Click); / m

22、enuItem16/this .menuItem16.Index = 3;this .menuItem16.Text ="-"/ / menu_EditSelAll/this .menu_EditSelAll.Index = 4;this .menu_EditSelAll.Shortcut = System.Windows.Forms. Shortcut .CtrlA;this .menu_EditSelAll.Text ="全选";this .menu_EditSelAll.Click +=new System. EventHandler (this

23、.menu_EditSelAll_Click);/ menu_EditFind/this .menu_EditFind.Index = 5;this .menu_EditFind.Shortcut = System.Windows.Forms. Shortcut .CtrlF;this .menu_EditFind.Text ="查找";this .menu_EditFind.Click += newSystem. EventHandler (this .menu_EditFind_Click);/ menu_View/this .menu_View.Index = 2;t

24、his .menu_View.MenuItems.AddRange( new System.Windows.Forms. MenuItem this .menu_ViewSource);this .menu_View.Text ="查看(&V)"/ / menu_ViewSource/this .menu_ViewSource.Index = 0;this .menu_ViewSource.Text ="源文件"this .menu_ViewSource.Click += new System. EventHandler (this .menu_

25、ViewSource_Click);/ menu_Tool/this .menu_Tool.Index = 3;this .menu_Tool.MenuItems.AddRange( new System.Windows.Forms. MenuItem this .menu_ToolInternet,this .menuItem1,this .menuItem3, this .menuItem6);this .menu_Tool.Text ="工具(&T)"/ menu_ToolInternet /this .menu_ToolInternet.Index = 0;

26、this .menu_ToolInternet.Text = "Internet 选项";this .menu_ToolInternet.Click += new System. EventHandler (this .menu_ToolInternet_Click);/ menuItem1/this .menuItem1.Index = 1;this .menuItem1.Text ="收藏夹";/ menuItem3/this .menuItem3.Index = 2;this .menuItem3.Text ="设置";/ me

27、nuItem6/this .menuItem6.Index = 3;this .menuItem6.Text ="下载内容";/ menu_Help/this .menu_Help.Index = 4;this .menu_Help.MenuItems.AddRange( new System.Windows.Forms. MenuItem this .menu_HelpAbout,this .menuItem2);this .menu_Help.Text ="帮助(&H)"this .menu_Help.Click += new System.

28、 EventHandler (this .menu_Help_Click);/ menu_HelpAbout /this .menu_HelpAbout.Index = 0;this .menu_HelpAbout.Text ="关于";this .menu_HelpAbout.Click += newSystem. EventHandler (this .menu_HelpAbout_Click);/ menuItem2/this .menuItem2.Index = 1;this .menuItem2.Text ="检查更新";/ menuItem4

29、/ this .menuItem4.Index = 5;this .menuItem4.Text ="添加到收藏3.1.2 用“转到”按钮实现浏览Click事件中添加代码实现文 彩 云",8.999999F,在地址栏中输入网址,除了按回车键可以连接到网站外,还可以单击地址栏后的“转至广 按钮连接到网站。双击设计窗体中的“转到”按钮,在此按钮的用“转到”按钮浏览。程序代码如下:this .btnGo.FlatStyle = System.Windows.Forms. FlatStyle .Flat;this .btnGo.Font = new System.Drawing.

30、Font (" 华System.Drawing. FontStyle .Regular, System.Drawing. GraphicsUnit .Point, ( byte )(134);this .btnGo.Location = newSystem.Drawing. Point (318, 36);this .btnGo.Name = "btnGo"this .btnGo.Size = newSystem.Drawing. Size (63, 22);this .btnGo.TabIndex = 3;this .btnGo.Text ="转到&q

31、uot;;this .btnGo.Click +=new System. EventHandler (this .btnGo_Click);3.1.3 “帮助”功能实现“帮助”可实现“关于”功能。在主菜单中,选择“帮助” ,打开“关于”,弹出一个对 话框,它是关于程序的简单描述,如图 3.2所示。口新逑| 后退前进j因停止 圜刷新:、主页j地址I二| 一芭丈. 立一窗奥图3.2关于对话框“关于”对话框是在“关于”的Click事件中调用另一个窗体Form2来实现的,“关于”的程序代码如下:this .menu_HelpAbout.Index = 0;this .menu_HelpAbout.Te

32、xt ="关?于?;this .menu_HelpAbout.Click += newSystem. EventHandler (this .menu_HelpAbout_Click);在Form2窗体的设计中,添加一个 PictureBox控件来显示图片,添加Label控件来实现 文字的显示,并用一个“确定”按钮来实现退出对话框。程序如下所示:private void menu_HelpAbout_Click( object sender, System. EventArgs e) MessageBoxShow("旭日浏览器 1.0","旭日浏览器&q

33、uot;,MessageBoxButtons.OK, MessageBoxIcon.Information); private void menu_FileExit_Click( object sender, System. EventArgs e) this .Close(); 3.2 浏览控制按钮功能实现在Form设计窗口中,在toolStrip控件上双击鼠标左键,为此控件的Click事件添加相应的程序代码,可以实现对浏览器进行后退、前进、暂停、刷新、首页、搜索操作。程序代码如下:this .mainToolBar.Appearance = System.Windows.Forms. To

34、olBarAppearance .Flat;this .mainToolBar.Buttons.AddRange( new System.Windows.Forms. ToolBarButton 口 this .tbb_New, this .toolBarButton1, this .tbb_Back, this .tbb_Forward, this .toolBarButton2, this .tbb_Stop, this .tbb_Refresh, this .tbb_GoHome, this .toolBarButton3);this .mainToolBar.ButtonSize =n

35、ew System.Drawing. Size (60, 22);this .mainToolBar.DropDownArrows = true ;this .mainToolBar.ImageList = this .imageList1;this .mainToolBar.Location = newSystem.Drawing. Point (0, 0);this .mainToolBar.Name = "mainToolBar"this .mainToolBar.ShowToolTips = true ;this .mainToolBar.Size = new Sy

36、stem.Drawing. Size (724, 28);this .mainToolBar.TabIndex = 7;this .mainToolBar.TextAlign = System.Windows.Forms.ToolBarTextAlign .Right;this .mainToolBar.ButtonClick+=newSystem.Windows.Forms. ToolBarButtonClickEventHandler (this .mainToolBar_ButtonClick);/ / tbb_New10/this .tbb_New.ImageIndex = 0;thi

37、s .tbb_New.Name = "tbb_New"this .tbb_New.Text ="新建";this .tbb_New.ToolTipText ="新建";/ toolBarButtonl/this .toolBarButtonl.Name = "toolBarButtonl"this .toolBarButtonl.Style = System.Windows.Forms. ToolBarButtonStyle/ tbb_Back/this .tbb_Back.ImageIndex = 1;this

38、.tbb_Back.Name = "tbb_Back"this .tbb_Back.Text ="后退";this .tbb_Back.ToolTipText ="后退";/ tbb_Forward/this .tbb_Forward.ImageIndex = 2;this .tbb_Forward.Name = "tbb_Forward"this .tbb_Forward.Text ="前进";this .tbb_Forward.ToolTipText ="前进";/ to

39、olBarButton2/this .toolBarButton2.Name = "toolBarButton2"this .toolBarButton2.Style = System.Windows.Forms. ToolBarButtonStyle/ tbb_Stop/this .tbb_Stop.ImageIndex = 3;this .tbb_Stop.Name = "tbb_Stop"this .tbb_Stop.Text ="停止";this .tbb_Stop.ToolTipText ="停止";/

40、tbb_Refresh/this .tbb_Refresh.ImageIndex = 4;this .tbb_Refresh.Name = "tbb_Refresh"this .tbb_Refresh.Text ="刷新";this .tbb_Refresh.ToolTipText ="刷新"/.Separator;.Separator;/ this .tbb_GoHome.ImageIndex = 5;this .tbb_GoHome.Name = "tbb_GoHome"this .tbb_GoHome.Tex

41、t ="主页";this .tbb_GoHome.ToolTipText ="主页";3.3 历史记录功能实现在浏览器的地址栏中,打开下拉列表,会显示用户曾经访问过的站点地址,即历史记录, 这些记录会存储在系统的注册表中。在应用中需要将这些历史记录提取出并显示在地址栏中, 使用户可以直接选择曾经浏览过的网页地址。选中Form设计窗口,在其“事件”窗口中,双击列表中的 Load事件,添加代码,可以 实现历史记录。程序代码如下:private void MainForm_SizeChanged( object sender, System. EventArg

42、s e)ResizeWindow();private void MainForm_Load( object sender, System. EventArgs e)ResizeWindow();CreateNewWebBrowser();LoadFormerList();private void MainForm_Closing( object sender, System.ComponentModel. CancelEventArgs e)SaveFormerList();17第4章系统测试4.1 测试用例4.1.1 测试用例1输入数据: 操作:接回车键连接;设为空白页;新建。预测结果:显示网页内容;点击“首页”,显示为空白页;选择“文件”,打开“新 建”,弹出新的浏览器对话框。4.1.2 测试用例2输入数据:操作:按“连接”按钮连接;打开;设为首页。预测结果:显示网页内容;选择“文件”,点击“打开”,弹出文件对话框,选择要 打开的文件,点击打开即可显示出其内容;点击“首页”,显示为输入的网站“” 的内容。4.1.3 测试用例3输入数据: 操作:邮件;关于;搜索。预测结果:选择“工具”,打开“邮件”,弹出发送

温馨提示

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

评论

0/150

提交评论