没有合适的资源?快使用搜索试试~ 我知道了~
大作业设计文档2
需积分: 0 0 下载量 134 浏览量
2022-08-03
15:35:20
上传
评论
收藏 1.9MB PDF 举报
温馨提示
试读
21页
简介本项目为简单 HTTP 服务器,参考了 TinyHTTP(http://tinyhttpd.sourceforge.net/),并增加了很多内容,支持并发请
资源详情
资源评论
资源推荐
1
武汉大学国家网络安全学院
课程报告
课程名称: 网络程序设计
专业、班: 信安 4 班
姓 名: 肖轩淦
学 号:
2016301500327
学 期: 2018 年下学期
2
简介
.............................................................................................................................................
3
实验环境
.....................................................................................................................................
3
目录结构
.....................................................................................................................................
4
代码介绍
.....................................................................................................................................
5
HTTPD.H
........................................................................................................................................
5
MAIN.C
.........................................................................................................................................
6
CONF_PARSER.C
.............................................................................................................................
7
HTTPD.C
........................................................................................................................................
7
HTTP_IO.C
.....................................................................................................................................
9
HTTP_MINE.C
...............................................................................................................................
10
HTTP_LOG.C
................................................................................................................................
10
ERROE_DEBUG.C
...........................................................................................................................
11
MYHTTPD.CONF
............................................................................................................................
12
NAME.CGI
....................................................................................................................................
13
功能展示
...................................................................................................................................
13
扩展
...........................................................................................................................................
19
测试
...........................................................................................................................................
19
在线环境
...................................................................................................................................
20
3
简介
本项目为简单 HTTP 服务器,参考了 TinyHTTP(http://tinyhttpd.sourceforge.net/
),并增加了很多内容,支持并发请求、命令行解析、动态文件配置解析、多客
户端支持、方法解析、CGI、内容类型识别、错误处理、日志记录、访问 IP 记
录、高并发的日志记录、Ctrl-C 和 exit()时资源释放、自定义变长参数函数输出
等功能。
实验环境
物理机系统:MacOS 10.14.5
虚拟机系统:Ubuntu 14.04 32bit
虚拟机内核版本:4.15.0-45-generic
编译器版本:gcc version 5.4.0 20160609
测试使用浏览器版本:Chrome 74.0.3729.169(64 位)、Firefox 65.0.1 (32-bit)
4
目录结构
共 17 个文件,为了方便读者阅读源码,对部分代码文件介绍如下:
.
├── Makefile
├── README
├── conf_parser.c 命令行参数、配置文件解析相关
├── error_debug.c 与错误处理、调试输出代码相关
├── htdocs 网站主目录
│ ├── 2.jpeg
│ ├── gif1.gif
│ ├── index.html
│ └── name.cgi
├── http_error.c HTTP 错误处理相关
├── http_io.c socket 输入输出相关代码
├── http_log.c 日志模块代码
├── http_mine.c 识别请求内容类型识别相关代码
├── http_misc.c 一些其他辅助功能的函数
├── httpd.c httpd 主模块
├── httpd.h 头文件,在多个文件中被引用
├── main.c 程序入口,进行初始化
└── myhttpd.conf 配置文件
1 directory, 17 files
5
代码介绍
Httpd.h
主要是定义结构体、函数、全局变量和默认配置:
// 配置文件相关
#define FILE_LINELENGTH 100
#define DEFAULT_Conf_File_Path "./myhttpd.conf"
#define DEFAULT_Log_File_Path "./myhttpd.log"
配置文件的结构体:
struct conf_opts{
char CGIRoot[128]; /*CGI 跟路径*/
char DefaultFile[128]; /*默认文件名称*/
char DocumentRoot[128]; /*根文件路径*/
char ConfigFile[128]; /*配置文件路径和名称*/
char LogFile[128]; // 日志文件
int ListenPort; /*侦听端口*/
int MaxClient; /*最大客户端数量*/
int TimeOut; /*超时时间*/
int InitClient; /*初始化线程数量*/
};
struct conf_opts conf_para;
pthread 只能传递一个参数,故使用结构体
//pthread 传参结构体
struct thread_args{
int client_sock;
struct sockaddr_in client_name;
};
内容类型识别相关
struct mine_type{
char *extension;
int type;
int ext_len;
剩余20页未读,继续阅读
巴蜀明月
- 粉丝: 32
- 资源: 302
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python课设-学生信息管理系统
- 广东省2021年普通高考音乐表演-器乐类总分分数段统计表(含本、专科层次加分)
- ubuntu20.04安装教程.md
- 广东省2021年普通高考音乐表演-声乐类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考音乐学类总分分数段统计表(含本、专科层次加分)
- 广东省2021年普通高考舞蹈类总分分数段统计表(含本、专科层次加分)
- Python教程-快速入门基础必看课程10-函数基础
- tensorflow-2.9.2-cp39-cp39-win-amd64.whl
- tensorflow-2.9.2-cp37-cp37m-win-amd64.whl
- 广东省2021年普通高考体育类总分分数段统计表(含本、专科层次加分)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0