欢迎来到天天文库
浏览记录
ID:41694717
大小:137.41 KB
页数:27页
时间:2019-08-30
《基于linux系统嵌入式web服务器设计2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、<5^<5^<5^<5^<5^<5^<5^<5^*4>*4>*4>*4>*4>*4>*4>*4>*4>*4>*4>实践教学可・*・兰州理工大学计算机与通信学院2015年春季学期嵌入式系统开发课程设计题目:基于LINUX系统的嵌入式WEB服务器的设计专业班级:通信工程12级1班姓名:王爱强学号:12250110指导教师:张玺君成绩:目录摘要1前言2一、基本原理31.1嵌入式WEB服务器概述31.2SOCKET编程概述4二、系统分析62.1整体结构图62.2连接处理模块6三、详细设计73.1主程序设计73.2客户连接处理模块设计
2、83.3客户请求解析处理模块设计83.4发送HTTP协议数据头模块设计9四、运行结果11参考文献14总结15致谢17附录18摘要嵌入式Web服务器主要用于远程监测和控制,它不同于传统的Web服务器,硬件处理器能力和储存能力有限,因此操作系统等相关软件需要进行裁剪以适应嵌入式环境,开源代码的操作系统Linu型具有强大的网络服务功能,支持多种网络接口和网络协议栈,同时具有成本低性能稳定,扩充能力强等特点,成为嵌入式操作系统的首选。关键词:Linux;Web服务器;浏览器;交叉编译前言嵌入式系统已经成熟并且得到了广泛地使用。在传统的测控系统中,为了实现多个测控点之间的信息交流,
3、一般采用RS-485、CAN.SPT等总线将多个测控节点组织成一个网络,但是这样的网络专用性太强,有效地通信范围太窄,而基于TCP/IP协议的Web技术得到了普及,更重要的是这些协议是可开发的、标准的、独立于平台的。把嵌入式系统和与Web技术结合在一起,将Web技术引入到测量和控制系统中,实现基于嵌入式Web服务器的远程控制系统,必将有良好地应用前景。嵌入式系统离不开嵌入式操作系统。目前商用的操作系统往往价格昂贵,不适应广泛应用。嵌入式Linux操作系统源码可开发。移植性好,支持多种硬件平台并且支持几乎所有的常见网络通信协议支持的文件系统也很丰富,是一个功能完整的嵌入式操
4、作系统并且有大量的优秀开发码源的应用软件和开发工具可以使用。因此,采用Linux作为平台,使用Web技术进行远程在线测控系统的设计。1・1嵌入式WEB服务器概述1)WEB服务器通常是在远程机器上,负责对浏览器页面请求作出响应,返冋HTML编码或类似的数据流。通俗的讲,血b服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议來为应用程序提供(serves)商业逻辑(businesslogic
5、)。随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CG1功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。2)WEB浏览器WEB浏览器是个显示网页伺服器或档案系统内的HTML文件,并让用户与此些文件互动的一种软件。个人电脑上常见的网页浏览器包括微软的InternetExplorer>Moz订la的Firefox、Opera和Safari0浏览器是最经常使用到的客户端程序。3)嵌入式
6、WEB服务器架构图1嵌入式WEB服务器架构常见的嵌入式WEB服务器有lighttpd、shttpdsthttpd、boa、mathopd、minihttpd>appweb>goahead等上百不中。1.2SOCKET编程概述现在大多数的操作系统都提供了已编译好了的网络通讯程序。TCP/IP范围内最普通的例子就是web客户端(浏览器)和web服务器,还有就是FTP和Telnet的客户端和服务器等。Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。SOCKET编程接口#include7、socket・h>intsocket(intdomain,inttype,intprotocol);说明:socket()函数创建一个套接字参数:domain:应用程序所在主机使用的通信协议族type:建立的套接字的类型Protocol:使用的特定协议#ineludeintbind(intsockfd,structsockaddr*myaddr,socklentaddrlen);说明:将套接字地址与所创建的套接字号联系起来参数:sockfd:调用socket返回的文件描述符my_addr:指向数据结
7、socket・h>intsocket(intdomain,inttype,intprotocol);说明:socket()函数创建一个套接字参数:domain:应用程序所在主机使用的通信协议族type:建立的套接字的类型Protocol:使用的特定协议#ineludeintbind(intsockfd,structsockaddr*myaddr,socklentaddrlen);说明:将套接字地址与所创建的套接字号联系起来参数:sockfd:调用socket返回的文件描述符my_addr:指向数据结
此文档下载收益归作者所有