基于ARM的嵌入式WEB服务器设计_第1页
基于ARM的嵌入式WEB服务器设计_第2页
基于ARM的嵌入式WEB服务器设计_第3页
基于ARM的嵌入式WEB服务器设计_第4页
基于ARM的嵌入式WEB服务器设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

0开放性实验报告题 目: 基于 ARM 的嵌入式 WEB 服务器设计 院系名称: 专业班级: 学生姓名: 学 号: 指导教师: 成绩:指导老师签名:日期:2017.1.61目 录1 绪论 .11.1 课题简介 .11.2 设计目的 .11.3 设计内容 .11.4 设计用途 .22 嵌入式 WEB 服务器设计原理简介 .22.1 需求说明 .22.2 功能需求详细说明 .32.3 数据流图(DFD) .42.4 数据需求 .43 嵌入式 WEB 服务器设计流程 .53.1 系统结构图 .53.2 整体结构图说明 .53.3 连接处理模块 .63.4 功能分配 .64 嵌入式 WEB 服务器设计程序分析及实践 .74.1 程序设计 .74.1.1、接口设计 .74.1.2、解析客户请求 .74.1.3、发送 HTTP 协议数据头 .74.1.4、发送当前目录文件列表信息 .74.1.5、发送 HTML 文件内容 .84.1.6、发送纯文本(TXT)文件内容 .84.1.7、发送 JPEG 图像文件内容 .84.1.8、发送 GIF 图像文件内容 .84.2 程序分析 .84.2.1、主程序设计 .84.2.2、客户连接处理模块设计 .94.2.3、客户请求解析处理模块设计 .104.2.4、发送 HTTP 协议数据头模块设计 .114.3 实验步骤 .124.3.1、阅读理解源码 .124.3.2、编译应用程序 .124.3.3、下载调试 .134.3.4、本机测试 .13心得体会 .14参考文献 .1521 绪论1.1 课题简介随着后 PC 时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。ARM 单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。ARM 单片机控制嵌入式 WEB 服务器系统,是利用 ARM 作为系统的主控制器,由 linux 下的 vi 编程,来实现对于嵌入式 WEB 服务器的访问。本设计采用 ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。鉴于这样的重要性,我们打算设计一种基于 ARM 的嵌入式服务器系统。1.2 设计目的通过本次工程实践,运用 ARM 体系结构与编程所学知识及查阅相关资料,完成嵌入式 WEB 服务器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在基本思路和基本方法上对基于 ARM 的设计有一个比较感性的认识,并具备一定程度的设计能力。1.3 设计内容熟知嵌入式 WEB 服务器的工作原理、SOCKET 网络编程。使用 Redhat Linux 9.0 操作系统环境及 ARM 编译器,编译 WEB 服务器的驱动模块和应用程序,实现嵌入式 WEB 服务器的设计。1.4 设计用途学习使用 SOCKET 进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计, 读懂 HTTPD.C 源代码。在此基础上增加一些其他功能。在 PC 计算机上使用浏览器测试嵌入式 WEB 服务器的功能。32 嵌入式 WEB 服务器设计原理简介2.1 需求说明图 2.1 嵌入式 WEB 服务器需求说明2.2 功能需求详细说明1)获取服务器当前目录文件列表将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。2)获取指定文件将客户请求的文件发送给客户。3)获取 HTML 类型文件将客户请求的 HTML 类型文件发送给客户。4)获取纯文本文件将客户请求的纯文本发送给客户。5)获取 JPG 图像文件4将客户请求的 JPG 图像文件发送给客户。6)获取 GIF 图像文件将客户请求的 GIF 图像文件发送给客户。7)解析用户请求分析客户的请求,将请求信息解析为几个变量,包括:请求的命令、请求的文件名、请求的文件类型。2.3 数据流图(DFD )图 2.2 数据流图(DFD)2.4 数据需求回应 HTTP 协议数据头格式要求,如表 2.1 所示:表 2.1 HTTP 协议数据头格式行号 字段 内容举例1 状态行 HTTP/1.0 200 OK2 文件类型 Content-type: text/html3 服务器信息 Server: ARMLinux-httpd 0.2.44 是否过期 Expires: 053 嵌入式 WEB 服务器设计流程3.1 系统结构图图 3.1 系统结构图3.2 整体结构图说明主程序:建立 TCP 类型 SOCKET 在 80 端口进行监听连接请求。接收到连接请求,将请求传送给连接处理模块处理。并继续进行监听。63.3 连接处理模块图 3.2 连接处理模块3.4 功能分配1)发送当前目录文件列表信息将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。2)发送 HTML 类型文件将客户请求的 HTML 类型文件发送给客户。3)发送纯文本文件将客户请求的纯文本发送给客户。4)发送 JPG 图像文件将客户请求的 JPG 图像文件发送给客户。5)发送 GIF 图像文件将客户请求的 GIF 图像文件发送给客户。6)解析客户请求 HTTP 协议头分析客户的请求,包括:71. 空格处理2. 解析客户请求命令3. 解析客户请求的资源名4. 解析客户请求的资源类型。7)客户连接处理解析 Referrer 和 content_length 字段值并调用客户请求解析函数。8)发送 HTTP 协议数据头根据发送文件类型发送相应的 HTTP 协议头信息。4 嵌入式 WEB 服务器设计程序分析及实践4.1 程序设计4.1.1、接口设计客户连接处理函数名:int HandleConnect(int fd)参数:客户连接文件描述字4.1.2、解析客户请求函数名:int ParseReq(FILE *f, char *r)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。参数 2:字符串指针,待解析的字符串。4.1.3、发送 HTTP 协议数据头函数名:int PrintHeader(FILE *f, int content_type)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入 HTTP协议数据头信息。参数 2:信息类型,用于确定发送的 HTTP 协议数据头信息。4.1.4、发送当前目录文件列表信息函数名:int DoDir(FILE *f, char *name)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入目录文件信息数据。8参数 2:目录名,表示客户请求的目录信息。4.1.5、发送 HTML 文件内容函数名:int DoHTML(FILE *f, char *name)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。参数 2:客户请求的文件名。4.1.6、发送纯文本(TXT)文件内容函数名:int DoText(FILE *f, char *name)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。参数 2:客户请求的文件名。4.1.7、发送 JPEG 图像文件内容函数名:int DoJpeg(FILE *f, char *name)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。参数 2:客户请求的文件名。4.1.8、发送 GIF 图像文件内容函数名:int DoGif(FILE *f, char *name)参数:参数 1:文件流 FILE 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。参数 2:客户请求的文件名。4.2 程序分析4.2.1、主程序设计1)功能说明系统的总入口,也是系统的主要控制函数。分别完成如下功能: 建立环境设置。 设置信号处理方式。 建立侦听 TCP 流方式 SOCKET 并绑定 80 端口。9

温馨提示

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

评论

0/150

提交评论