实验5实验报告
北京电子科技学院(BESTI)
实 验 报 告
课程:深入理解计算机系统 班级: 1352
姓名:黄卫,朱国庆,杨光
学号:20135221 20135237 20135233
成绩: 指导教师:娄嘉鹏 实验日期:2015/11/24
实验密级: 预习程度: 实验时间:3:30~6:00
仪器组次: 必修/选修:必修 实验序号:5
实验名称: 通讯协议设计
实验目的:
1、掌握在ARM开发板实现一个简单的WEB服务器的过程。
2、学习在ARM开发板上的SOCKET网络编程。
3、学习Linux下的signal()函数的使用。
实验仪器:
名称 |
型号 |
数量 |
台式PC |
联想 |
1 |
嵌入式实验平台 |
UP-TECH S2410/P270 DVP |
1 |
实验内容、步骤与体会:
- 实验过程的理解,实验指导书中知识点的理解。
实验功能需求:
1.获取服务器端当前目录文件列表(包括文件名,大小,日期)
2.获取指定文件
3.获取HTML类型文件
4.获取纯文本文件
5.获取JPG图像文件
6.获取GIF图像文件
7.解析用户请求(将请求信息解析为几个变量:请求的命令,请求的文件名,请求的文件类型)
8.客户端连接处理(解析Referrer和content_length字段值并调用客户端解析函数)
9.发送HTTP协议数据头
(1)如何搭建服务器端?
首先要建立环境设置,设置信号处理得方式,然后建立监听(侦听)TCP流方式SOCKET并绑定端口,建立连接侦听即客户连接处理。
(2)客户端的用户请求如何解析处理?
根据功能分析定义上述函数,再根据请求信息来调用对应功能的函数。
(3)理解实验中算法流程?
设置信号处理句柄
进入根目录
命令行处理
建立TCP流SOCKET
绑定监听端口
设置允许客户连接数量
侦听客户连接请求
客户连接请求处理
实验截图:
遇到的问题以及解决办法:
无法通过make得到该文件夹中copy和httpd的可执行文件
解决办法:
手动输入了最后一行:armv4l-unknown-linux-gcc -o http httpd.o copy.o -lpthread