【精品】VC简易WEB服务器研究(论文+源代码)
收藏
资源目录
压缩包内文档预览:(预览前20页/共77页)
编号:1639540
类型:共享资源
大小:390.67KB
格式:RAR
上传时间:2017-08-30
上传人:机****料
认证信息
个人认证
高**(实名认证)
河南
IP属地:河南
50
积分
- 关 键 词:
-
精品
vc
简易
web
服务器
研究
钻研
论文
源代码
- 资源描述:
-
【精品】VC简易WEB服务器研究(论文+源代码),精品,vc,简易,web,服务器,研究,钻研,论文,源代码
- 内容简介:
-
= = of is a a of in of up at to a or is It is is a of of It ES be +to or to to to is an is as s is by +. in , of s is be +./to a a is + to of to or FC in a is in a s to + or it to ( If t do of I of in of 诚信声明 我谨在此保证:本人所写的毕业论文,凡涉及其它作者的观点和材料,均列入参考文献。论文主体均由本人独立撰写,没有抄袭行为。如出现抄袭及违反知识产权的情 况,愿接受校方的处分。 宣誓人: 二 00 年 月 日 1 毕业设计材料清单 一、论文正文 . 二、指导教师评语(正文) .、文献综述 . 39 四、指导教师评语及成绩(文献综述) . 53 五、外 文翻译 . . .、指导教师评语及成绩(外文翻译) .、论文评阅人评语(二份) . . 73 八、答辩委员会评语 . . . .、相关材料 ( 任务书、开题报告、指导卡、 指导教师评分表、答辩记录、答辩小组评分表 ) . 2 浙江工商大学 毕业设计(论文) 学 院:计算机与信息工程学院 题 目: 简易 务器研究 专 业: 计算机科学与技术 学 号 : 02213107 学生姓名: 韦杰 指导教师: 施寒潇 二 00 六年六月 3 简易 务器研究 摘 要 本文主要论述了 务器的设计与研究,其中介绍了 务器的基本构架,包括服务器端和浏览器端,以及 统的工作原理,服务器 /浏览器的通信模式,着重介绍了分析请求和构造响应这两项服务器与浏览器通信所必需的功能。另外还对 范的含义、发展历程、套接 口、套接口的基本编程原理以及本次设计的开发工具 + 了简单的介绍。并对简易务器的页面设计,侦听和响应等功能模块的设计以及具体代码实现做了较为详细的介绍。 关键词 : 务器 、 范 、套接口 4 on a In I an on of I it is to to + 6.0 to of of in 5 目 录 第一章 引言 . 7 题意义 . 7 文架构 . 8 第二章 . 9 . 9 . 9 . 10 响应 . 11 浏览器是如何实现通信 . 12 析请求 . 12 造响应 . 13 第三章 系统采用技术介绍 . 14 术简介 . 14 范 ? . 14 范发展历程 . 15 接口 . 16 3 2 . 16 第四章 系统设计 . 17 面设计 . 17 . 17 6 . 17 听模块设计 . 17 务器端操作 接字) . 17 操作 . 21 答模块设计 . 22 . 22 . 26 第五章 系统实现 . 27 面代码及侦听模块实现 . 27 . 27 答模块实现 . 30 第六章 总结 . 35 致谢 . 36 7 简易 务器研究 第一章 引言 选题意义 当前,互联网的发展已经对人们的生活和工作 产生了深刻的影响,互联网提供的各项信息资讯正在深入到人们的日常生活当中,改变着人们的生活习惯和工作方式。人们通过互联网,能够及时便捷地了解到时事新闻、天气变化、财经资讯、股市行情以及与生活息息相关的衣食住行方方面面的信息。通过互联网,人们足不出户就可以订购车票、购买股票甚至预定鲜花、早餐。互联网已经把全世界真正变成了“地球村”:发生在地球任一角落的事情,瞬间就能将消息传遍世界。据统计,截止 2005 年底, 全球互联网用户人数达到 互联网如此方便快捷,是与有着数量众多的 务器在背后为它提供着最强 力的技术支持分不开的。 不可否认, 一个 站的成败主要在于它所提供的内容和功能 ,而 为 这些内容和功能 提供技术支持的 务器 在整个 互联网 体系中同样起着关键性的作用。人们从网络中获得的信息,都是由服务器接收,处理和发送的。没有服务器,互联网就仅仅是几张静态页面,没有数据处理,没有信息交互,甚至静态页面也无法存在。因此,可以说互联网是因为服务器而得到迅猛发展的。 目前,主流的 务器主要有 们都是功能强大而又各有特色的 务器。不过, 这些 务器在提供强大的功能保障的同时在规模上也稍显“庞大”,存在着诸如硬件设备要求高,系统环境配置复杂等不足。本人认为,随着技术的发展,降低服务器的规模,设计小巧灵活,适合个性化需求的微型 务器、绿色服务器是今后发展的一个方向。 8 本次毕业设计的目的是在了解 务器工作原理的基础之上,设计一个简易的 务器,实现 务器的基本页面解析功能。 并对其技术实现 的各模块 进行一定的研究。最后通过结合具体实例来验证该系统的功能。 论文结构 为了更好的对本次设计进行分析论述,本文 的 分析设计共分 为五个部分:第一部分为第二章,简单地介绍了 务的体系结构,包括 务的基本架构和 务的基本原理; 第二部分为第三章,介绍了 本次毕业设计所采用的技术:面向对象技术和 三部分为第四章,介绍了 系统设计的情况,包括界面设计以及侦听模块和应答模块设计 ;第四部分 为 第五章,为 系统 实现过程, 介绍了各模块的 详细设计步骤 及部分代码 ;第五部分为第 六章, 简要 阐述了我本次毕业设计的心得体会。 9 第二章 务体系结构 如今市面上已经有很多很多出色的 务器,如 、 些服务器的功能是十分强大的,也各有其的特色,但是他们的本质都是一样的:准备接受第三方的请求,并通过回复特定类型的信息以满足这些请求。 务使用的是 议, 是基于 议提供的可靠的数据流服务的基础上的。 历了三个版本 入了很多先进的技术,也促使 务器产生了质的飞跃, 务器起到了可扩展性,高速缓冲存储器、带宽的优化、网络连接管理的提高作用。 务正被越来越多的公司和机构使用,很多企业在享受电子商务、带来的快捷便利,同时却又被紧随其后的非法访问和入侵或安全问题所困扰。在 构上寻求一种快速安全的网络数据传输解决方案,从而让网络数据更加安全,这是一个很关键的问题。 务器基本 构架 务器和浏览器 基于请求和响应的系统,它是在 C/S( 构的基础上发展而来的。为了实现世界范围内的信息共享和发布,它规范了通讯协议,并规范、强化 端的系统功能, 用户在 查看文档提供了一个图形化的,易于进入的界面, 一种基于超文本传输协议( 称 计算机传送多媒体信息(如文本、图片、声音、视频、交互式应用程序)的 务 。同 C/S 结构一样, 两部分构成,即 务器端和 览器端, 务器的主要功能是:创建、管理和维护 面,对浏览器的请求进行应答并返回 , 10 览器( 来观看 源的客户端软件,主要负责请求,解释并显示 工作过程见图 图 要过程为: ( 1) 务器请求信息; ( 2) 务器响应请求,并返回给客户机超文本标记语言( 面; ( 3) 面进行 解释并显示。 面 面是 统实现发布、进行管理的主要对象。 面像一个大的容器,将要发布的文字、图片、声音、动画、视频等多种媒体信息封装到一起,供 统实现发布,进行管理。对于 统而言,在众多的 面中,有一个称为 页的页面,它是访问者浏览 统的起点。每个 为统一资源定位符( 存储此页面的计算机名和此页面的确切路径构成。 面是超文本标记语言( 写的。 一种嵌入式语言,通过在普通 文本中嵌入各种标记( 使普通文本具有了超级文本的功能。根览器 务器 请求服务 . 务器 客户机 图 作原理 11 据 面的内容,可将 面分为三种类型:静态页面,动态页面,目录列表页面。 统的基本原理是请求 /响应 在客户端,浏览器接受用户输入的网页地址( 进行分析,从而得到网页的文件名字和存放网页的计算机地址以及服务程序的端口号,首先根据计算机地址及端口号与服务器建立连接,然后把网页名称及浏览器本身的有关信息按照一定的格式组织起来,发给服务器,这就是请求。比如用户输入,从而可知: (1)计算机名称为 (2)端口号为 80( (3)页面的文件名为 览器就与 端口号为 80的服务程序建立连接,并把类似下面的数 据发过(作为服务请求): * 00*600 .0(P 中第一行说明了文件名称( 请求的类型( 浏览器支持的协议版本( 服务器端接受到请求后,对其进行分析,解析出网页的文件名称及其他信息 (比如请求的类型、处理要求等 ),根据网页的文件名称到磁盘上提 取文件内 12 容,把文件内容和一些必要的说明信息打包后发给浏览器,然后断开连接,这就是“响应”。 (浏览器接到文件内容后就将其中的内容显示出来了 )比如对于文件长度为 2559B 的 以发送如下数据作为“响应”: 00 0 006 12:45:21 559 2 006 14:21:50 上述数据分 2 大部分,第 1 部分为“头”,其中,第 1 行是状态行,包括服务器执行的 本及本次响应的状态码。后 4 行分别说明了服务器名称、当前日期、数据类型、数据长度、最后修改的日期和时间。第 2 部分为数据“体”,是“请求”要求传送的数据,它跟在 1个空行之后。 当然,客户端和服务器之间还可能有一些中间环节,比如代理服务器、网关、“隧道”等,在此我们先不予考虑。 务器 /浏览器的通信 要完成 务,除了网络通信链路的建立和 拆除之外至少还要有两方面的功能:“分析请求”和“构造响应”。 析请求 如前文所述,“请求”的第 1行数据是最重要的,它的格式是: 方法 资源地址 回车换行 “方法”主要有 3种: 求必须返回一定的内容。有时还必须根据“请求”的要求先对内容做一定的处理 (比如解压缩或根据时间进行过滤 )。 理办法和 全相同,但要求只返回“头”,而不可返回任何实质内容 (“ 体 ” )。 13 来处理网页的附属内容,比如“注解”、数据回送等。 作为简单的服务器,我们只 考虑第一行,且只处理 求,版本号不予理睬。 造响应 如前文所述,响应的第 1行是状态行,非常重要,格式如下: 本号 状态码 状态文字说明 回车换行 版本号可取 态码是 3位数字,根据情况按表 示代码取值。 表 态码值 代码特征 含义 举例 1 开头的 2 开头的 3开头的 4开头的 5开头的 保留未用 成功 需要进一步处理 客户断错误 服务器端错误 比如 200表示处理成功 比如 400表 示“请求”有错, 404 表示找不到客户指定的文件 作为简易的服务器,“响应”可以只返回状态行和文件内容,即送回如下的内容: 200 状态行 一个空行 文件内容 文件内容 14 第三章 系统采用技术介绍 术简介 么是 范 ? 范是一套开放的、支持多种协议的 的网络编程接口。从 1991 年的 到 1995 年的 ,经过不断完善并在公司的全力支持下,已成为 范是建立在 接口模型上的。这个模型现在已是 P 网络的标准。 范是以 学流行的 口为范例而设定的一套 络接口编程。这个规范不仅包含了我们所熟悉的 接口风格的库函数,也包含了针对 扩展库函数,这样一来使程序员能充分利用 息驱动机制进行相应的编程。 应用程序调用 现相互之间的通讯。 利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如图 15 图 用程序与 关系 范发展历程 范发展至今已经经历了三个阶段,首先是 发布, 表了网络软件供应商和用户协会细致周到的工作的结晶。 范的发布是为了让网络软件供应商和应用程序开发者能够开始建立各自的符合 准的实现和应用程序。 为了更能满足个系统的要求,有发布了之后的 本 承了 准则和结构,并且仅在一些绝对必要的地方作了改动。这些改动都是基于不少公司在创作 现时的经验和教训的。 含了一些更加清晰的说明和对小改动。还有很多的改动就不做一一介绍了。 现在大多的网络编程的规范已经是 ,它在 又有了更多的改动,具体的改动在这里也不做具体的介绍了。 16 接口 套接口是从英文单词 译过来的,它是网络通信的基本构件。套接口是可以被命名和寻址的通信端点,使用中的每一个套接字都有它的类型和一个与之相连的进程。 套接口存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接口通信的进程的共有特性综合在一起。套接口通常和同一个域中的套接口交换数据(数据交换也可能穿越域的界限,但这时一定要执行某种解释程序)。 范支持单一的通讯域,即 。各种进程使用这个域互相之间用 议族来进行通讯( 如 )。 套接口可以根据通讯性质分类;这种性质对于用户是可见的。应用程序一般仅在同一类的套接口间通讯。不过只要底层的通讯协议允许,不同类型的套接口间也照样可以通讯。用户目前可以使用两种套接口,即流套接口和数据报套接口。流套接口提供了双向的,有序的,无重复并且无记录边界的数据流服务。数据报套接口支持双向的数据流,但并不保证是可靠,有序,无重复的。也就是说,一个从数据报套接口接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同。数据报套接口的一个重要特点是它保留了记录边界。对于这一 特点,数据报套接口采用了与现在许多包交换网络(例如以太网)非常类似的模型。 介 +是运行于 台上的交互式的可视化集成开发环境,它是美国 司开发的 件的一部分。跟其他的可视化集成开发环境(如 C+ 样,+ 程序的代码编辑、编译、连接和调试等功能于一体,给编程人员提供了一个完整方便的开发界面和许多有 效的辅助开发工具。 + 应用程序向导可以为很大一部分类型的程序提供框架代码,用户不用书写程序代码,只需按几个按钮就可以生成一些完整的可以运行的程序。 17 第四章 系统设计 界面设计 面设计要求 对于应用软件来说,一个基本现实就是:用户界面是面向用户的。用户需要的是开发者开发的应用软件满足其需求,并且易于使用。界面设计的重要性有这么几个原因:首先,用户界面越直观,就越易用,越易用就越便宜。因为界面越好,培训用户就越容易,降低了培训成本;界面越出色,用户就越少求助, 降低了客户支持成本。其次,界面越出色,用户就喜欢使用,增强了开发者工作的满意度。 面制作方法 该 务器是通过 C+编程来实现的。首先新建一个 程 ,然后建立一个对话框。接着在对话框里面添加四个按钮,一个列表框以及两个静态文本框,改变各控件的名称,调整对话框及各控件的大小,使界面美观大方。 侦听模块设计 务器端操作 接字) (一) 在初始化阶段调用 此函数在应用程序中初始化 有此函数调用成功后,应用程序才可以再调用其他 的 数。在程 序中调用该函数的形式如下: (1; 停止侦听: 29 / 如果正在侦听 if( / 关闭侦听 ; 00); e) / 在 件中提示 异常错误 主程序: , e); / 删除异常,根据不同的异常对象产生方式,删除方法不同,由对象自己判定 ; ; / 显示状态 ,停止服务 停止服务 ); /在 件中提示服务器已关闭 务器关闭! ); / 激活开始按钮 /禁止停止按钮 设置路径: 30 / 文件打开对话框,后缀名是“ 默认文件名“ ; / 显示对话框 = / 用户选择“确定” 按钮 / 获得路径和文件名,并更新服务器路径 ; / 将路径中的文件名,替换成”空“,只保留路径 ,); / 显示服务器路径为新的值 服务器路径: + 关闭窗口: / (); 应答模块实现 了解了 服务器工作线程函数 程 , 利用 +开发平台实现这个功能 , 首先利用建立向导建立 文件 , 头文件中的代码如下 : ; 31 ;/侦听套接字状态 ;/服务器地址 ;/缺省网页的名字 (, 我们对其源文件进行编写。首先我们对我们之前在头文件中定义的变量赋初值。一旦服务器端接受到客户放发送来的请求,则就对发送来的请求利用函数 行解析,通过这个函数我们将请求来的信息划分为三个部分,每遇到一个终止符号就定义为一个部分。 定义完解析函数之后在源文件添加显示连接状态信息函数 * ()%m/%d/%y %H:%M:%S ); / 获得当前时间 服务器连接 # %d , / / 格式化输出 ,服务器连接 / 更新信息框 址 : %s 端口 : %d, ); / 格式化输出 ,地址端口 32 时间 : %s, / 格式化输出 ,时间 请求 : %s, / 格式化输出 ,客户端请求头信息部分 该函数能将请求者的信息 ( 址 , 请求的时间 , 请求的头信息部分 ) 显示在 , 能让管理员能清晰的看到是谁发送页面请求以及请求的基本内容。 之后我们定义的错误信息记录函数 与连接状态信息函数类似,将错误的信息显示在 ,其中错误是什么错误,错误号是多少以及发生错误的时间都一一都显示在 , 让管理员能清楚的看到错误号,能及时进行纠正,让客户能及时得到想要得到的信息。 下面定义的就是我们所设计的工作线程函数: 体流程图我们已经在上一章详细介绍过了,首先我们要开启服务器,监听是否有连接请求,这一步的关键代码如下: ; /在应用程序关 闭时的处理 ; /连接数增加一个 之后创建新的服务器线程通过以下代码实现这一步 然后读取请求的头部信息,并记录请求的信息其关键代码如下 10); 最后就是最关键的部分,对客户发送过来的请求进行分析,首先要判断是不是过以下代码实现这一功能: 33 ) /浏览器 /读取请求的剩余部分 10); rn); 10); /向浏览器发送“出错信息” 10); /其它的请求方式 /错误的请求 /关闭套接字 ; 如果客 户请求的是一个空信息那我们将发送我们之前定义的默认页面具体代码如下: /) /发送默认的页面 34 ( ; rn); 10); 10); 代码能实现本系统所设计的模块功能之后 , 接下来就是将进行最终的测试 , 通过两台连接到 计算机作为本次测试 , 一台作为服务端 , 而另一台则作为客户端。在服务器端开启我所设计的 务器软件,并指定所需要的发布的默认主页,然后在另一台客户端上通过 览器的地址栏里输入服务器的 址,这样客户就发送请求给服务器端,服务器端就将客户请求的内容发送给客户。返回的主页信息如图 图 回的网页信息 而在服务器端中的 其中有错误发生在也将错误信息显示在 35 第六章 总结 通过这次对简易 务器的设计及研究,充分锻炼了自己的动手能力,解决问题能力,以及整个设计的思维也得到了提升。不断的获取新的知识,在原有的基础上增加知识 ,巩固知识。通过对各模块,特别是侦听模块的设计,使我掌握了一定的 程技巧;而对 +开发工具的使用以及代码的编写,使得本人对这个开发环境得到了 一个充分的实践机会,学到了许多以前没有接触过的知识,通过编程让个人的编程能力得到强化。还有对这个程序的调试过程,我清楚地明白调试工作的辛苦:一行一行地对代码进行阅读,不断地设置断点进行调试,并对其错误进行修改。 经过这次毕业设计,我得到了一次非常系统的锻炼机会,我相信将对我以后的工作带来很大的帮助,我相信下次开发的软件产品一定会比这次更好。 36 致谢 这次的毕业设计是对我大学四年学习的一次综合检验,是一次很好的锻炼机会。在过去的几个月,我对大学所学的课程有了一次彻底的融会贯通,使我对 程技术有 了比较切身的了解, +开发工具也能够较为熟练地使用。 在毕业设计即将完成之际,我要特别感谢我的导师施寒潇老师,他对我毕设的每一个进展都很关心,在他的指导、关心和帮助下,我才能顺利地完成此次毕业设计。同时我也要感谢我寝室的室友们,感谢他们在这次毕业设计过程中同我讨论我不清楚的问题,并给我提出不少建议。 最后再次感谢施寒潇老师在此期间对我的悉心指导和帮助;感谢所有老师和同学对我的关心和帮助。 37 【 参考文献 】 1 贾立华 ,林碧英 . 在超文本协议中实现会话的若干 方法 J. 现代电力 , 2003, (2): 232 刘波涛 ,郭麦成 . 微型 务器的设计与实现 J. 国外电子测量技 , 2004, (1): 263 陶永进 . 对 务器的应用探讨 J 2003, 6(2): 324 卢成梁 . 简易 务器应答模块设计与研究 J. 市场周刊 , 2005, (4): 1815 李大亮 ,曲波 务器的设计与实现 J2004,27(2):1286 罗惟 ,王萍 务器的设计 J2003,157(14):47 杨阳 . 基于 务器数据访问 J2003,(10):658 施炜 , 李铮 , 秦颍 . 范及应用 络编程 M 9 蒋东兴 ,林鄂华等 . 络程序设计大全 M. 清华大学出版社 , 1999, (4): 7910 E. 计算机网络与因特网 M. 清华大学出版社 , 2111 M. 2000:1112 络连接技术 M. 北京科学出版社 , 1996. 16513 P , 1996, 15(7): 59014 , 1998, 33 (1): 515 S, on J, 6(6), 2004(5): 397 38 浙江工商大学 (计算机与信息工程学院) 毕业设计(论文)评语表 姓名 韦杰 学号 02213107 专业 计算机科学与技术 论文题目 简易 务器研究 指导教师评语: 该生对 务器的现状了解的比较清晰,对一些技术要点也能把握到位。该生对 务器及 B/S 结构的工作原理了解的比较透彻。整个论文描述清晰,文章结构合理。 该生在整个毕设过程中,态度好,求知欲较强。较好的完成了程序设计,通过测试,基本达到任务书中的设计目标和要求。不足之处就是欠缺对 务器的更深层次的研究,对带参数及脚本的请求 和解析要求不够深入,在今后需要在这方面加强锻炼。 指导教师签字: 年 月 日 注:本表由指导教师填好相应的栏目后与学生毕业设计(论文)一起送交学院。 39 浙江工商大学 毕业设计(论文)文献综述 学 院:计算机与信息工程学院 专 业: 计算机科学与技术 学生姓名: 韦 杰 学 号: 02213107 指导教师: 施寒潇 二 00 六 年 四
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。