c++服务器开源项目Tinywebserver运行

c++服务器开源项目Tinywebserver运行

  • 一、Tinywebserver介绍
  • 二、环境搭建
  • 三、构建数据库
  • 四、编译Tinywebserver
  • 五、查看效果

Tinywebserver是github上一个十分优秀的开源项目,帮助初学者学习如何搭建一个服务器。
本文讲述如何在使用mysql跟该项目进行连接并将项目运行起来。

一、Tinywebserver介绍

Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器.

  • 使用 线程池 + 非阻塞socket + epoll(ET和LT均实现) + 事件处理(Reactor和Proactor均实现) 的并发模型
  • 使用状态机解析HTTP请求报文,支持解析GET和POST请求
  • 访问服务器数据库实现web端用户注册、登录功能,可以请求服务器图片和视频文件
  • 实现同步/异步日志系统,记录服务器运行状态
  • 经Webbench压力测试可以实现上万的并发连接数据交换

在这里插入图片描述

二、环境搭建

系统环境 : ubuntu 22.04 + mysql5.7.29
mysql安装教程详见Ubuntu22部署MySQL5.7详细教程

三、构建数据库

1、进入mysql

mysql -u root -p

2、建立你的数据库
根据readme写sql语句:创建 yourdb数据库,创建user表。

	create database yourdb;USE yourdb;CREATE TABLE user(username char(50) NULL,passwd char(50) NULL)ENGINE=InnoDB;INSERT INTO user(username, passwd) VALUES('name', 'passwd');

四、编译Tinywebserver

1、修改配置
需要确认main.cpp里的数据库和你mysql数据库配置相同,如端口、ip等。
然后打开main.cpp修改对应配置。
在这里插入图片描述
2、编译运行Tinywebserver
在Tinywebserver项目文件中打开终端,运行命令编译项目。

sh ./build.sh

启动server

./server

五、查看效果

输入ip:9006就可以进行登录注册操作了,可以使用ifconfig查看ip地址。
在这里插入图片描述

参考资料:
c++ 经典服务器开源项目 Tinywebserver的使用与配置(百度智能云服务器安装ubuntu18.04可用公网ip访问)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中科大计网学习记录笔记(十三):UDP 套接字编程 | 传输层概述和传输层的服务

前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面的部分发现信…

igolang学习2,golang开发配置国内镜像

go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.cn,direct

轻松掌握opencv的8种图像变换

文章目录 opencv的8种图像变换1. 图像放大、缩小2. 图像平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 图像的位运算(AND, OR, XOR)7. 图像的分离和融合8. 图像的颜色空间 opencv的8种图像变换 1. 图像放大、缩小 我们先看下原图 import cv2 import ma…

Stable Diffusion 模型分享:A-Zovya RPG Artist Tools(RPG 大师工具箱)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 A-Zovya RPG Artist Tools 模型是一个针对 RPG 训练的一个模型,可以生成一些 R…

用友U8库存展望数据显示错误

1、库存展望显示有订单在途。 2、双击查看明细,显示某个采购订单显示有预计入库量。 3、查询该采购订单,发现已入库完成未退货,确定为数据异常。 修改采购订单表体的iReceivedQTY(累计到货数量)字段后,恢复正常。 UPDATE dbo.PO_…

这6款实用的AI写作软件你值得拥有

在当今信息爆炸的时代,人们对于高效、便捷的写作工具需求越来越迫切。AI写作软件应运而生,为广大写作者提供了更加智能、高效的写作方式。在国内,有许多优秀的AI写作软件,下面就为大家介绍6款实用的AI写作软件,让你的写…

ELK 简介安装

1、概念介绍 日志介绍 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据。 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 日志…

Unity Meta XR SDK 快捷配置开发工具【Building Block/Quick Action/OVRCameraRigInteraction】

文章目录 📕教程说明📕Building Block📕Quick Action📕OVRCameraRigInteraction 此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 社区,博主目前在内…

如何设置路由器的端口映射?

路由器端口映射是一种常用的网络配置方式,可以将外部网络请求转发到内部网络上的指定设备。通过设置端口映射,我们可以实现远程访问局域网内的设备,使其在任何网络环境下都可以被访问。本文将介绍如何设置路由器的端口映射,以便实…

华为OD机试真题-查找接口成功率最优时间段-2023年OD统一考试(C卷)--Python3--开源

题目: 考察内容: for 时间窗口list(append, sum, sort) join 代码: """ 题目分析:最长时间段 且平均值小于等于minLost同时存在多个时间段,则输出多个,从大到小排序未找到返回 NULL 输入…

大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…

TCP/IP协议详解

文章目录 TCP/IP协议概述基于TCP/IP协议的应用工具协议协议的必要性 TCP/IP协议TCP/IP协议族协议的分层 传输方式的分类报文、帧、数据包等的区别TCP 和 UDP的区别 TCP/IP协议概述 TCP/IP(Transmission Control Protocol/Internet Protocol)是一组通信协…

使用 package.json 配置代理解决 React 项目中的跨域请求问题

使用 package.json 配置代理解决 React 项目中的跨域请求问题 当我们在开发前端应用时,经常会遇到跨域请求的问题。为了解决这个问题,我们可以通过配置代理来实现在开发环境中向后端服务器发送请求。 在 React 项目中,我们可以使用 package…

Cubemax创建FreeRTOS工程

目录 1.选择芯片型号,进入Pinout & Configuration 2.配置RCC的HSE为晶体/陶瓷振荡器 4.配置LED-GPIO引脚 5.配置调试串口UART1 6.配置FreeRTOS 7.配置时钟 8.工程管理配置 9.生成代码 1.选择芯片型号,进入Pinout & Configuration 2.配置…

【Python机器学习】详解Python机器学习进行时间序列预测

🔗 运行环境:Python 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

横空出世,Bright Data 低代码数据平台,即将颠覆你的认知!

大家好,我是锋哥,最近接了个监控平台的私活项目。由于监控公开的站点太多,在我无从下手迷茫之际,竟然无意中发现了这个宝藏级低代码数据平台 - 亮数据。功能强大,性能炸裂! 传统开发 以前我们开发这种监控…

庖丁解牛-二叉树的遍历

庖丁解牛-二叉树的遍历 〇、前言 01 文章内容 一般提到二叉树的遍历,我们是在说 前序遍历、中序遍历、后序遍历和层序遍历 或者说三序遍历层序遍历,毕竟三序和层序的遍历逻辑相差比较大下面讨论三序遍历的递归方法、非递归方法和非递归迭代的统一方法然…

Python编程语言的特点和优点

Python编程语言的特点和优缺点 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅和支持~ 💡 …

设计模式复习

设计模式 1、什么是设计模式 一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动.尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于于面向对象设计模式&…

【DDD】学习笔记-发布者—订阅者模式

在领域设计模型中引入了领域事件,并不意味着就采用了领域事件建模范式,此时的领域事件仅仅作为一种架构或设计模式而已,属于领域设计模型的设计要素。在领域设计建模阶段,如何选择和设计领域事件,存在不同的模式&#…