【Boost】:http_server模块(六)

news2024/9/22 18:25:11

http_server模块

  • 一.安装cpp-httplib库
  • 二.基本使用服务器

一.安装cpp-httplib库

可以自己写一个http服务器,但比较麻烦,这里直接使用库。

在gitee上搜索cpp-httplib,任意找一个即可(建议使用0.7.15版本)。例如:https://gitee.com/welldonexing/cpp-httplib/tags?page=3(注意由于是用户进行上传的,所以链接有可能失效,可以自己搜索)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

接下来拖到云服务器上,再进行解压即可。接下来建立软链接到data目录下(当然建立软链接是为了方便找到,不建立只要能找到路径都行)

在这里插入图片描述

注意:使用该库需要较新的gcc,可以使用gcc -v查看版本。

升级gcc(三条指令):

  1. sudo yum install centos-release-scl

  2. sudo yum install devtoolset-8-gcc*

  3. scl enable devtoolset-8 bash

接下来使用gcc -v再查看版本:

在这里插入图片描述

二.基本使用服务器

创建一个http_server.cc文件和wwwroot目录用以存放主页面(一般主页面名为index.htmp)。(为了不混淆,把上一章写的server.cc改名为debug.cc)

在这里插入图片描述

http_server.cc

#include "cpp-httplib/httplib.h"

const std::string root_path="./wwwroot";

int main()
{
  httplib::Server svr; // 创建对象

  // 测试
  svr.set_base_dir(root_path.c_str());//主页面
  svr.Get("/hi", [](const httplib::Request &rep, httplib::Response &rsp)
          { rsp.set_content("你好,世界", "test/plain: charset-utf-8"); });

  svr.listen("0.0.0.0",8081);
      return 0;
}

index.html

<html>
<head>
  <meta charset="UTF-8">
  <title>for test</title>
</head>
<body>
  <h1>你好,世界</h1>
  <p>这是一个httplib的测试网页</p>
</body>
</htm1>

测试

将服务器运行起来,在浏览器上输入云服务器的ip和端口号(8081),就可以跳转到主页面上。

在这里插入图片描述

坑:注意阿里云有安全系统,如果你一直连不上就要考虑端口是否开放了。

开放示例:可以使用netstat -ntlp查看服务器是否启动

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1440897.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络编程-Socket套接字

目录 1.网络编程 1.1定义与图解 1.2基本概念 &#xff08;1&#xff09;发送端和接收端 &#xff08;2&#xff09;请求和响应 &#xff08;3&#xff09;客户端和服务端 2.Socket套接字 2.1定义 2.2分类 &#xff08;1&#xff09;流套接字 &#xff08;2&#xff…

实例分割论文阅读之:FCN:《Fully Convolutional Networks for Semantica Segmentation》

论文地址:https://openaccess.thecvf.com/content_cvpr_2015/papers/Long_Fully_Convolutional_Networks_2015_CVPR_paper.pdf 代码链接&#xff1a;https://github.com/pytorch/vision 摘要 卷积网络是强大的视觉模型&#xff0c;可以产生特征层次结构。我们证明&#xff0c…

第62讲商品搜索动态实现以及性能优化

商品搜索后端动态获取数据 后端动态获取数据&#xff1a; /*** 商品搜索* param q* return*/GetMapping("/search")public R search(String q){List<Product> productList productService.list(new QueryWrapper<Product>().like("name", q)…

机器学习系列——(十七)聚类

引言 在当今数据驱动的时代&#xff0c;机器学习已经成为了解锁数据潜能的关键技术之一。其中&#xff0c;聚类作为机器学习领域的一个重要分支&#xff0c;广泛应用于数据挖掘、模式识别、图像分析等多个领域。本文旨在深入探讨聚类技术的原理、类型及其应用&#xff0c;为读…

Maven私服部署与JAR文件本地安装

Nexus3 是一个仓库管理器&#xff0c;它极大地简化了本地内部仓库的维护和外部仓库的访问。 平常我们在获取 maven 仓库资源的时候&#xff0c;都是从 maven 的官方&#xff08;或者国内的镜像&#xff09;获取。团队的多人员同样的依赖都要从远程获取一遍&#xff0c;从网络方…

K8S之运用亲和性设置Pod的调度约束

亲和性 Node节点亲和性硬亲和实践软亲和性实践 Pod节点亲和性和反亲和性pod亲和性硬亲和实践 pod反亲和性 Pod 的yaml文件里 spec 字段中包含一个 affinity 字段&#xff0c;使用一组亲和性调度规则&#xff0c;指定pod的调度约束。 kubectl explain pods.spec.affinity 配置…

对称二叉树

给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false思路&#xff1a;1.确定递归函数的参数…

Token、Tokenization 和张量之间的关系

输入经过Tokenization、Embedding和Positional Encoding后&#xff0c;最终构建为张量&#xff0c;给后续的计算和处理带来很多优势。 1. tokenization和张量 在自然语言处理&#xff08;NLP&#xff09;领域中&#xff0c;tokenization 是文本预处理的重要步骤之一&#xff0…

91.网游逆向分析与插件开发-游戏窗口化助手-游戏窗口化助手的UI设计

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;项目需求与需求拆解-CSDN博客 码云地址&#xff08;游戏窗口化助手 分支&#xff09;&#xff1a;https://gitee.com/dye_your_fingers/sro_-ex.git 码云版本号&#xff1a;e512d44da1b7e6a8726b1be0…

Rust 格式化输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、format! 宏二、fmt::Debug三、fmt::Display四、? 操作符 循环打印 前言 Rust学习系列-本文根据教程学习Rust的格式化输出&#xff0c;包括fmt::Debug&…

【C++】结构体变量的赋值细节

C中 结构体变量的赋值与数组在定义时的初始化(赋值)十分相似&#xff1a; ①它们定义在全局区时都会自动初始化为0 ②都是使用大括号的方式赋值 ③大括号中的值都是从前往后一一对应的进行赋值&#xff0c;如果大括号中的值的数量不够的话&#xff0c;后面那些没有被手动赋值的…

ubuntu20.04安装最新版nginx

前言 记录下ubuntu服务器安装nginx 步骤 安装最新版本的 Nginx 可以通过添加 Nginx 官方的软件仓库并更新软件包信息。以下是在 Ubuntu 20.04 上安装最新版本 Nginx 的步骤&#xff1a; 添加 Nginx 软件仓库&#xff1a; 打开终端并执行以下命令&#xff1a; sudo sh -c echo…

无人机动力系统高倍率锂聚合物电池介绍,无人机锂电池使用与保养,无人机飞行控制动力源详解

无人机电池使用及保养 电池是无人机飞行的动力来源,也是一个消耗品&#xff0c;对电池充分了解&#xff0c;采取正确的使用方法&#xff0c;妥善进行维护保养将有助于提高飞行的安全性、延长电池的使用寿命。以下将详细对电池的使用和管理进行讲解。 高倍率锂聚合物电池的含义…

HiveSQL——条件判断语句嵌套windows子句的应用

注&#xff1a;参考文章&#xff1a; SQL条件判断语句嵌套window子句的应用【易错点】--HiveSql面试题25_sql剁成嵌套判断-CSDN博客文章浏览阅读920次&#xff0c;点赞4次&#xff0c;收藏4次。0 需求分析需求&#xff1a;表如下user_idgood_namegoods_typerk1hadoop1011hive1…

Rebuild企业管理系统 SSRF漏洞复现(CVE-2024-1021)

0x01 产品简介 Rebuild是高度可配置化的企业管理系统!企业内部可免费使用!低代码/零代码快速搭建企业中台、CRM客户关系管理、WMS库存管理、TMS运输管理、SCM供应链管理,外贸管理,甚至是 ERP 企业资源计划! 0x02 漏洞概述 Rebuild 3.5.5 版本存在安全漏洞,该漏洞源于组…

【Linux】进程学习(一):基本认识

目录 1.基本概念2.初步理解3.描述进程-PCB3.1task_struct-PCB的一种3.2task_ struct内容分类 4.组织进程5.查看进程5.1通过ps指令查看5.2通过系统目录查看 6.通过系统调用获取进程的PID和PPID7.通过系统调用创建进程-fork初识 1.基本概念 课本概念&#xff1a;程序的一个执行实…

ONLYOFFICE文档8.0新功能浅探

ONLYOFFICE文档8.0新功能浅探 上个月末这个月初的几天&#xff0c;ONLYOFFICE版本更新了&#xff01;更新到了一个比较整的大的版本号&#xff0c;8.0版本&#xff0c;看来这个生产力工具的升级速度基本上能保持每年两个版本号的速度&#xff0c;还是很快的&#xff0c;一般来…

微软.NET6开发的C#特性——委托和事件

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;看到不少初学者在学习编程语言的过程中如此的痛苦&#xff0c;我决定做点什么&#xff0c;下面我就重点讲讲微软.NET6开发人员需要知道的C#特性&#xff0c;然后比较其他各种语言进行认识。 C#经历了多年发展…

Ajax+JSON学习一

AjaxJSON学习一 文章目录 前言一、Ajax简介1.1. Ajax基础1.2. 同源策略 二、Ajax的核心技术2.1. XMLHttpRequest 类2.2. open指定请求2.3. setRequestHeader 设置请求头2.4. send发送请求主体2.5. Ajax取得响应 总结 前言 一、Ajax简介 1.1. Ajax基础 Ajax 的全称是 Asynchron…

网络连接受限或无连接怎么办?这里提供几个修复办法

本文介绍了如何完成疑难解答步骤,以解决在Windows 10、Windows 8和Windows 7中尝试在Windows计算机上设置或建立网络连接时可能遇到的连接问题错误。 可能错误提示 连接受限或无连接:连接具有有限的连接或无连接。你可能无法访问Internet或某些网络资源。 连接受限。 排除和解…