# 标准C语言实现简单Web服务器 **Repository Path**: Crosery/C_web ## Basic Information - **Project Name**: 标准C语言实现简单Web服务器 - **Description**: 本课设任务来自长江大学计算机网络课设任务四! - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 0 - **Created**: 2024-06-17 - **Last Updated**: 2025-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 标准C语言实现简单Web服务器 本课设任务来自**长江大学**计算机网络课设任务四! 环境需要:**Visual Studio 2022** + **CMake** + **命令行编译** ## 一、项目介绍 ### 📋 任务要求 **设计目标:** 完成基础的tcp连接,支持基础的client与其连接,简单的http访问,支持静态页面访问,需要一定的报错机制,如404页面的建立。 1. socket实现简单Http服务器,完成html的解析; 2. 运行该服务器可以通过浏览器访问服务器目录下的 Html文件、jpg图片、css文件的载入。 完成初步的Http服务器功能。 **相关技术:** Server端: 1. 完成socket(),bind(),listen()这些初始化工作后,调用accept()方法阻塞等待,等待Client的connect()方法连接 2. 处理HTTP请求,解析请求行、请求头,返回相应的静态文件或错误页面  ## 二、运行截图 **代码实现效果**:   ## 三、开发环境安装 ### 3.1 Visual Studio 2022 安装(推荐) **下载地址**:[Visual Studio 2022 Community](https://visualstudio.microsoft.com/zh-hans/vs/) ### 3.2 CMake 安装 **下载地址**:[CMake官网](https://cmake.org/download/) **安装步骤**: 1. 下载CMake最新版本的Windows x64 Installer 2. 运行安装程序 3. **重要**:安装时勾选"Add CMake to the system PATH for all users" 4. 完成安装后,打开命令行验证: ```cmd cmake --version ``` ### 3.3 Git 安装(可选) 用于克隆项目代码: **下载地址**:[Git for Windows](https://git-scm.com/download/win) ## 四、项目结构 ``` C_web/ ├── CMakeLists.txt # CMake构建配置文件 ├── README.md # 项目说明文档 │ ├── include/ # 头文件目录 │ ├── src/ # 源代码目录 │ └── main.c # 主程序源文件 │ ├── resources/ # 资源文件目录 │ ├── index.html # 主页HTML文件 │ ├── 404.html # 404错误页面 │ ├── css/ # CSS样式文件目录 │ ├── js/ # JavaScript文件目录 │ ├── img/ # 图片资源目录 │ └── music/ # 音乐资源目录 │ └── img/ # 项目文档图片目录 ``` ## 五、编译与运行 ### 5.1 CMake + 命令行 **步骤**: 1. **打开命令行**: - 按 `Win + R`,输入 `cmd`,回车 - 或在项目文件夹按住 `Shift` 右键,选择"在此处打开PowerShell窗口" 2. **进入项目目录**: ```cmd cd 项目工作目录 ``` 3. **配置项目**(首次运行): ```cmd cmake -B build -S . ``` 4. **编译项目**: ```cmd # Debug版本(默认) cmake --build build # Release版本(性能更好) cmake --build build --config Release ``` 5. **运行程序**: ```cmd # Debug版本 bin\Debug\main.exe # Release版本 bin\Release\main.exe # 指定端口运行 bin\Debug\main.exe 9000 ``` ### 5.2 方式二:GCC命令行编译 **前提**:需要安装MinGW-w64或使用WSL **教程:**[环境搭建 | Windows中MinGW-w64及GCC的下载、安装与配置 - 字节幺零二四 - 博客园](https://www.cnblogs.com/zijie1024/articles/18376803) **编译命令**: ```cmd # 基础编译 gcc -o webserver src/main.c -lws2_32 # 带调试信息 gcc -g -o webserver src/main.c -lws2_32 # 优化编译 gcc -O2 -o webserver src/main.c -lws2_32 # 运行 ./webserver.exe ``` ## 六、快速开始 ### 6.1 第一次运行 1. **下载/克隆项目**: ```cmd git clone https://gitee.com/Crosery/C_web.git cd C_web ``` 2. **选择编译方式**(推荐CMake): ```cmd cmake -B build -S . cmake --build build ``` 3. **将resources文件放进与main.exe的同级目录**:  4. **运行服务器**: ```cmd bin\Debug\main.exe ``` 5. **访问网站**: - 打开浏览器 - 访问:`http://localhost:8007` ## 七、配置文件 ### 7.1 环境配置文件(.env) 在项目根目录创建 `.env` 文件: ```env # 服务器配置 SERVER_PORT=8007 SERVER_IP_ADDR=0.0.0.0 BACKLOG=10 BUF_SIZE=8192 OK=1 ERROR=0 ``` ### 7.2 CMakeLists.txt 说明 项目已包含完整的CMake配置: ```cmake # CMake最小版本要求 cmake_minimum_required(VERSION 3.20.0) # 项目名称 project(main) # 添加头文件目录 include_directories(${PROJECT_SOURCE_DIR}/include) # 设置可执行文件输出路径 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 自动收集src目录下的所有源文件 aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_LIST) # 添加可执行文件 add_executable( main ${SRC_LIST} ) ``` ## 八、自定义配置教程 ### 8.1 修改端口配置 **方法一:环境配置文件**(推荐) ```env SERVER_PORT=9999 # 修改为你的端口 ``` **方法二:命令行参数** ```bash bin\Debug\main.exe 9999 ``` **方法三:修改源码** ```c // src/main.c 中修改 int g_server_port = 9999; // 你的端口号 ``` ### 8.2 修改个人信息 **修改服务器作者信息**: 编辑 `src/main.c`,找到 `display_server_logo()` 函数: ```c printf(" Created by 你的姓名\n\n"); ``` **修改网页个人信息**: 编辑 `index.html`,找到个人信息部分: ```html