北京电子科技学院(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. Android四大组件之BroadCast(续)

    1.哪一个方法可以发送广播? activity.sendbroadcast or context.sentbroadcast or service.sendbroadcast 2.创建广播接受程序必须 ...

  2. [QualityCenter]设置工作流脚本-设置不同字段值关联不同列表

    需求:当选择A字段某个值时,设置B字段的列表值根据A字段的值来判断读取不同的列表值,如当运行省份的值已更改, 运行地区的选择列表将更改. 在脚本编辑器新建一个函数UserFuntion_Bug_Pro ...

  3. 如何使用GOOGLE高级搜索技巧

    如何使用GOOGLE高级搜索技巧 一,GOOGLE简介 Google(www.google.com)是一个搜索引擎,由两个斯坦福大学博士生Larry Page与Sergey Brin于1998年9月发 ...

  4. 图片代替radio

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  5. 解决android的ListView嵌套在ScrollView中不能被滚动的问题

    使用滚动条容易带来一个后果,就是高度和宽度不受控制了, 之前就遇到一个已经有ScrollView的页面需要加个列表listView,然后就发现listView只看到前两行数据,下面的看不到,拉滚动条也 ...

  6. Hadoop 分布式文件系统 - HDFS

    当数据集超过一个单独的物理计算机的存储能力时,便有必要将它分不到多个独立的计算机上.管理着跨计算机网络存储的文件系统称为分布式文件系统.Hadoop 的分布式文件系统称为 HDFS,它 是为 以流式数 ...

  7. [转].NET下读取PDF文本

    本文转自:http://blog.csdn.net/wangqiuyun/article/details/8548779 在.NET下读取PDF文本用到的类库主要有两个:PDFBox和iTextSha ...

  8. 我的vim配置文件.vimrc

    我的vim配置文件.vimrc map <silent> <F10> :TlistToggle<cr>map <silent> <F8> : ...

  9. dipole antenna simulation by CST

    CST偶极子天线仿真,半波振子天线 一.本文使用CST仿真频率为1GHz的偶极子天线,使用2013版本.仿真的步骤为 1.选择一个CST的天线工程模板 2.设置好默认的单位 3.设置背景的材料(空气腔 ...

  10. 一致性哈希算法学习及JAVA代码实现分析

    1,对于待存储的海量数据,如何将它们分配到各个机器中去?---数据分片与路由 当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则 ...