云计算百科
云计算领域专业知识百科平台

【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer

【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器—tinyEasyMuduoWebServer

csdn项目: 原文链接:https://blog.csdn.net/weixin_45178775/article/details/122257814 github链接:https://github.com/wyewyewye/tinyEasyMuduoWebServer/blob/main/README.md 项目介绍:项目基于C++语言、陈硕老师的muduo网络库、mysql数据库以及jsoncpp,服务器监听两个端口,一个端口用于处理http请求、另一个端口用于处理发送来的json数据。

1 项目环境配置

1.1 必需依赖项

执行以下命令来安装所需的依赖项。

sudo apt-get install libjsoncpp-dev
sudo apt-get install mysql-server mysql-client

1.2 数据库配置

参考 https://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html 由于mysql和json我电脑已经配过了,此处不多赘述。

1.3 muduo库配置

1.3.1 环境要求

modu库github链接:https://github.com/chenshuo/muduo?tab=readme-ov-file 要求: Linux内核版本> = 2.6.28。 GCC >= 4.7 或 Clang >= 3.5 Boost(仅适用于 boost::any。)

1.3.2 所需依赖

安装所需的软件包:

sudo apt install g++ cmake make libboost-dev

一次性安装编译 C++ 项目和使用 Boost 库所需的工具和依赖。

1.3.3下载并配置

1. 确保依赖已安装 modu 依赖 libevent,所以先安装 libevent:

sudo apt update
sudo apt install libevent-dev -y

sudo apt install -y cmake g++ libboost-all-dev libprotobuf-dev protobuf-compiler


2. git clone

git clone https://github.com/chenshuo/muduo.git

3. 用 cmake 进行编译

cd muduo
mkdir build && cd build
cmake ..
make -j$(nproc)

在这里插入图片描述在这里插入图片描述 4.拷贝编译好的文件到系统目录 如 /usr/local/bin/, /usr/local/lib/

sudo make install

在这里插入图片描述

2 运行和代码修改

2.1 数据库表添加和数据添加

1.运行数据库

mysql -uroot -p
show databases;

在这里插入图片描述 2.创建license_plate数据库(代码里写的这个)

create database license_plate;

在这里插入图片描述 3.创建数据库表cars

USE license_plate;
CREATE TABLE cars (
id INT AUTO_INCREMENT PRIMARY KEY,
license_plate VARCHAR(20) NOT NULL,
time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ip VARCHAR(20) NOT NULL
);

在这里插入图片描述 4.插入数据

INSERT INTO carss (license_plate, ip) VALUES
('ABC1234', '192.168.1.1'),
('XYZ9876', '192.168.1.2'),
('LMN4567', '192.168.1.3');

在这里插入图片描述

2.2 代码修改为自己主机配置

数据库连接:修改为自己的 在这里插入图片描述 IP和端口:这里要注意端口设置 最好为常见的 Web 端口,比如: 80(HTTP 默认端口) 8080(常见 Web 开发端口) 8888(备用端口) 别的端口要另外配置 在这里插入图片描述

2.编译文件

编译命令:(这个贴出来了需要编译的文件是什么)

g++ httpcontext.cpp httprequest.cpp httpresponse.cpp httpserver.cpp jsonprocess.cpp sqlconnection.cpp main.cpp -o my_server \\-lmuduo_net -lmuduo_base -lpthread -ljsoncpp -lmysqlclient

或者这个:

g++ *.cpp -o my_server \\-lmuduo_net -lmuduo_base -lpthread -ljsoncpp -lmysqlclient

这些是 链接选项,用于在编译时链接 Muduo、JSON解析库、MySQL客户端库 和 线程库。下面是每个选项的详细解释:


1. -lmuduo_net

  • 作用:链接 Muduo 的网络模块,用于创建 TCP 服务器、TCP 客户端等网络编程功能。
  • 主要包含:
    • muduo/net/TcpServer.h (TCP 服务器)
    • muduo/net/TcpClient.h (TCP 客户端)
    • muduo/net/EventLoop.h (事件循环)

2. -lmuduo_base

  • 作用:链接 Muduo 的基础模块,提供日志、线程、定时器等功能。
  • 主要包含:
    • muduo/base/Logging.h (日志)
    • muduo/base/ThreadPool.h (线程池)
    • muduo/base/TimeStamp.h (时间戳)

3. -lpthread

  • 作用:链接 POSIX 线程库,提供多线程支持。
  • 主要用于:
    • 创建 多线程服务器
    • 使用 Muduo 线程池
    • 处理 并发任务

4. -ljsoncpp

  • 作用:链接 JSON 解析库 jsoncpp,用于解析和生成 JSON 数据。
  • 主要用于:
    • 读取 JSON 配置文件
    • 解析 API 返回的 JSON 数据
    • 生成 JSON 数据发送到前端

5. -lmysqlclient

  • 作用:链接 MySQL 客户端库,用于 C++ 连接 MySQL 数据库。
  • 主要用于:
    • 查询数据库
    • 执行 SQL 语句
    • 存储数据

总结

链接选项作用
-lmuduo_net Muduo 网络库(TCP 服务器、客户端)
-lmuduo_base Muduo 基础库(日志、线程池、定时器)
-lpthread POSIX 线程库(多线程支持)
-ljsoncpp JSON 解析库(JSON 读写)
-lmysqlclient MySQL 客户端库(连接数据库)

3.运行结果

在这里插入图片描述 同一台Ubuntu访问: 在这里插入图片描述 同一台公网下另一台电脑的windows: 在这里插入图片描述 大概配置运行是这样子的,我们发现他项目里面的两个.pro文件没有用处,界面直接在main里面写的html,可能是用qt打开时有用吧,但是具体我qt删了没法测试。

这个是项目配置 最近大概看看逻辑 后续可能会写一下实现逻辑

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【git】【网络】【项目配置运行】HTTP 协议的微型简易 Web 服务器---tinyEasyMuduoWebServer
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!