北京电子科技学院(BESTI)

             

课程:信息安全系统设计基础                     班级: 201352

姓名:池彬宁 贺邦

学号:20135212 20135208

成绩:             指导教师:   娄嘉鹏  实验日期:2015.12.1

实验密级:         预习程度:             实验时间:15:30~18:20

仪器组次:          必修/选修:       必修          实验序号:4

实验名称:简单嵌入式WEB服务器实验

实验目的与要求:1.掌握在 ARM 开发板实现一个简单 WEB 服务器的过程。

2.学习在 ARM 开发板上的 SOCKET 网络编程。

3.学习 Linux 下的 signal()函数的使用

实验仪器:

名称

型号

数量

ARM开发板

UP-NETARM2410-CL

1

PC

Windows Xp

1

一、实验内容:

①代码理解:

1)解析客户请求:int ParseReq(FILE *f, char *r)

char *r :字符串指针,待解析的字符串。

2)发送 HTTP协议数据头:int PrintHeader(FILE *f, int content_type)

int content_type:信息类型,用于确定发送的 HTTP 协议数据头信息

3)发送当前目录文件列表信息:int DoDir(FILE *f, char *name)

char *name:目录名,表示客户请求的目录信息。

4)发送 HTML文件内容:int DoHTML(FILE *f, char *name)

char *name:客户请求的文件名

5)发送纯文本(TXT)文件内容:int DoText(FILE *f, char *name)

char *name:客户请求的文件名

6)发送 JPEG图像文件内容:int DoJpeg(FILE *f, char *name)

char *name:客户请求的文件名

7)发送 GIF图像文件内容:int DoGif(FILE *f, char *name)

char *name:客户请求的文件名

②按照实验一配置好NFS服务。

③进入red hat系统中,进入07_httpd目录,使用make产生可执行文件httpd。

④在超级终端上输入mount –t nfs –o nolock 192.168.0.23:/arm2410cl                 /host(注意在/host前存在空格),创建链接。

⑤输入cd  /host/exp/basic/07_htttpd/ 进入07_httpd目录

⑥输入./httpd,运行httpd可执行文件,出现以下提示语句:

starting httpd...

press q to quit.

wait for connection

⑦打开本机浏览器输入http://192.168.0.121,出现以下页面

二、实验原理理解

1.该WEB服务器能实现的功能?

获取服务器当前目录文件列表、获取指定文件、获取HTML类型文件、获取纯文本文件、获取JPG图像文件、获取GIF图像文件。

2.HTTP协议数据头格式要求

1)请求格式:

请求行-通用信息头-请求头-实体头-报文主体

2)响应格式:

状态行-通用信息头-响应头-实体头-报文主体

3.为何采用SOCKET?

SOCKET用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。

三、实验过程中遇到的问题以及解决方案

1.make出错

发现仅仅为最后一个生成httpd可执行文件语句出错,则补上armv4l-unknown-linux-gcc -o httpd httpd.o copy.o –lpthread即可。

四、实验体会:

由于已经是最后一个实验了,大部分的步骤都进行的很顺利,对于出现的实验结果也是感到很惊喜,但后来一想,这种反映是因为自己并未弄清楚代码的含义,自己照着指导书一步一步地来的结果,在对代码有了解后,发现自己当初的惊喜多么好笑的反应。通过这几次实验也培养了良好的协作能力,体会到了1+1>2的感觉。

Linux第五次实验的更多相关文章

  1. LINUX第五次实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全系统设计基础                     班级: 201353 姓名:刘世鹏 郝爽 学号:2013530 ...

  2. Linux 第五周 实验: 分析system_call中断处理过程

    姬梦馨 原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 使用gdb跟踪分析一个系统调用内核函数 ...

  3. 20135302魏静静——linux课程第五周实验及总结

    linux课程第五周实验及总结 一.学习总结 给MenuOS增加time和time-asm命令(四步操作命令) rm menu -rf 强制删除git clone http://github.com/ ...

  4. Linux第五周学习总结——扒开系统调用的三层皮(下

    Linux第五周学习总结--扒开系统调用的三层皮(下) 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/co ...

  5. 20145240 《Java程序设计》第五次实验报告

    20145240 <Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.05.06 实验 ...

  6. 20145224&20145238 《信息安全系统设计基础》 第五次实验

    20145224&20145238 <信息安全系统设计基础>第五次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  7. 20145330《Java程序设计》第五次实验报告

    20145330<Java程序设计>第五次实验报告 实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统 4.结队伙伴 ...

  8. 20145320《Java程序设计》第五次实验报告

    20145320<Java程序设计>第五次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.05.06 18: ...

  9. 《sed的流艺术之四》-linux命令五分钟系列之二十四

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

随机推荐

  1. JIRA系统部署推进上线流程

    JIRA介绍: JIRA是集项目计划.任务分配.需求管理.问题跟踪于一体的商业软件.JIRA创建的问题类型包括New Feature.Bug.Task和Improvement四种(可以自己定义),所以 ...

  2. [VMware]设置VM虚拟机随系统自动启动

    设置步骤: 1.找到VM的安装路径,右键vmware发送到桌面快捷方式 2.右键桌面快捷方式的属性,看到目标的属性框 3.找到需要自启动的虚拟机路径,如: D:\QC_VM\Clone of Wind ...

  3. 《只是为了好玩:Linux之父林纳斯自传》

    <只是为了好玩:Linux之父林纳斯自传> 基本信息 作者: (美)Linus Torvalds    David Diamond 译者: 陈少芸 出版社:人民邮电出版社 ISBN:978 ...

  4. PS网页设计教程XXV——使用Photoshop设计的老式组合布局

    作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...

  5. 颠覆式前端UI开发框架:React

    转自:http://www.infoq.com/cn/articles/subversion-front-end-ui-development-framework-react/ 基于HTML的前端界面 ...

  6. 修复 Java 内存模型,第 2 部分——Brian Goetz

    转自Java并发大师Brain Goetz:http://www.ibm.com/developerworks/cn/java/j-jtp03304/ (中文地址) http://www.ibm.co ...

  7. paypal IPN 接口返回INVALID参数可能问题

    工作于浏览器Chrome时,登录IPN Simulator页发送测试数据,payment_date栏位值中出现乱码,导致无法返回正确的VERIFIED,在此记录.

  8. 使用SSIS包调度开发的包

    在项目中,开发完自己的packages之后,需要使用agentjob之类的服务来调度自己的package,当然我们也可以使用一个package来调度这些,下面就是我的一个简单的尝试. 没有设计得像Ag ...

  9. [转]PDF预览插件PDFObject.js

    本文转自:http://pdfobject.com/index.php When possible, use standardized HTML markup and avoid JavaScript ...

  10. poj-1083-Moving Tables(hdu-1050)

    Moving Tables Time Limit: 1000MS Memory Limit: 10000K Total Submissions: Accepted: Description The f ...