• 《信息安全系统设计基础》实验五实验报告


    《信息安全系统设计基础》实验五实验报告

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

    姓名: 20145206 邹京儒 20145236冯佳

    班级:1452

    指导教师:娄嘉鹏

    实验日期:2016.11.10

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

    实验目的与要求:

    1. 学习使用 socket 进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计,阅读HTTP 协议的相关内容,学习几个重要的网络函数的使用方法。 
      
    2. 读懂HTTPD.C 源代码。在此基础上增加一些其他功能。在PC 计算机上使用浏览器测试 嵌入式WEB 服务器的功能。 
      
    3. (要求)正确使用连接线等实验仪器,并注意保护实验箱。实验结束之后将实验箱送回。
      

    实验内容、步骤与体会:

    一、实验内容

    (同实验一)本次实验建立在掌握嵌入式开发平台使用方法和配置方法的基础上,要求使用windows xp,linux(red hat),arm三个系统(即NFS方式);在linux系统中安装arm系统。

    二、实验原理

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

           获取服务器当前目录文件列表、获取指定文件、获取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.配置实验箱

    • 同实验一中一样,配置实验环境
    • 连接arm开发板;
    • 建立超级终端;
    • 启动实验平台;
    • 修改windows xp系统的ip使得它与arm机的ip在同一网段;
    • 在red hat中安装arm编译器;
    • 配置环境变量。

    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地址),观察在客户机的浏览器中的连接请求结果(如下图)。

    四、实验中遇到的问题及解决

    1. 虽然将07_httpd文件中全部拷贝进了bc中,文件夹中拥有Makefile文件,但是还是无法通过make得到该文件夹中copy和httpd的可执行文件。
      解决:第一次是觉得Makefile文件中的PATH路径不对,将其改成了/home/bc/07_httpd存盘退出后发现还是无法执行,第二次我们直接使用gcc对其单步进行编译:
      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
      对于httpd的编译方式同上。
      Make——工程管理器,为了减少重复工作量,“自动编译管理器”,“自动”在于它能根据文件时间戳自动发现更新过的文件而减少编译工作量,同时它通过读入makefile文件的内容来执行大量的编译工作。用户只需要编写一次简答的编译语句就可以了,也就是说以后只要敲入make即可编译全部文件,它大大提高了实际项目的工作效率,几乎所有linux下的项目编程都需要用到它。
    2. make时出现error127
      解决:找到了原因,环境变量配置出现问题,是拷代码时没有将一个Rules.mak的MAK类型文件一起拷过来,导致make命令不能使用,重新配置后则正常make。
    3. 在将httpd服务下载到开发板上这一步骤中,挂载超级终端与共享文件建立通讯时,输mount -t nfs -o nolock 192.168.0.234:/root/bc /hos时,提No such file or director错误提示。
      解决方法:再次查看共享文件目录,确定我们并不存在/root/home/bc这一目录,将命令行修改mount -t nfs -o nolock 192.168.0.234:/home/bc /hos即可解决所提示错误。
  • 相关阅读:
    闲谈随笔以及对自己的心里暗示
    java利用Scanner获取键盘输入
    【积累】发送验证码按钮倒计时js
    【积累】validate验证框架的使用
    重写toString()方法来描述一个类
    【java基础】 合并两个类型相同的list
    java单例类/
    基本类型的包装类
    强转
    【java基础】面向对象的三大特征---多态
  • 原文地址:https://www.cnblogs.com/feng886779/p/6097182.html
Copyright © 2020-2023  润新知