课程:信息安全系统设计基础linux
姓名: 20145206 邹京儒 20145236冯佳编程
班级:1452windows
指导教师:娄嘉鹏浏览器
实验日期:2016.11.10安全
实验名称: 简单嵌入式WEB服务器实验服务器
实验目的与要求:网络
学习使用 socket 进行通信编程的过程,了解一个实际的网络通信应用程序总体设计,阅读HTTP 协议的相关内容,学习几个重要的网络函数的使用方法。
读懂HTTPD.C 源代码。在此基础上增长一些其余功能。在PC 计算机上使用浏览器测试 嵌入式WEB 服务器的功能。
(要求)正确使用链接线等实验仪器,并注意保护实验箱。实验结束以后将实验箱送回。
(同实验一)本次实验创建在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式);在linux系统中安装arm系统。多线程
1.该WEB服务器能实现的功能?socket
获取服务器当前目录文件列表、获取指定文件、获取HTML类型文件、获取纯文本文件、获取JPG图像文件、获取GIF图像文件。
2.HTTP协议数据头格式要求函数
1)请求格式: 请求行-通用信息头-请求头-实体头-报文主体 2)响应格式: 状态行-通用信息头-响应头-实体头-报文主体
3.为什么采用SOCKET?
SOCKET用于描述IP地址和端口,是一个通讯链的句柄,能够用来实现不一样虚拟机或不一样计算机之间的通讯。
4.代码理解
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
:客户请求的文件名
1.配置实验箱
2.进入07_hpptd文件夹中,尝试直接make进行自动编译。出现以下图所示的错误。
3.如上图中所示,为了解决httpd未能自动编译的问题,对hpptd.c文件进行手动多线程编译。
4.使用 NFS 服务方式将HTTPD 下载到开发板上,并拷贝测试用的网页进行调试。
[/mnt/yaffs] mount -t nfs -o nolock 192.168.0.56:/arm2410cl /host
[/mnt/yaffs]cd /host/exp/basic/07_httpd/
[/host/exp/basic/07_httpd]./httpd
(结果)starting httpd...
press q to quit.
wait for connection.
5.在台式机的浏览器中输入 http://192.168.0.121(121 为UP-CUP S2410 实验板的IP地址),观察在客户机的浏览器中的链接请求结果(以下图)。
armv4l-unknow-linux-gcc –E copy.c –o copy.i
armv4l-unknow-linux-gcc –S copy.i –o copy.s
armv4l-unknow-linux-gcc –c copy.s –o copy.o
error127
。mount -t nfs -o nolock 192.168.0.234:/root/bc /hos
时,提No such file or director
错误提示。mount -t nfs -o nolock 192.168.0.234:/home/bc /hos
便可解决所提示错误。