github源码指引:C++嵌入式WEB服务器

news2024/9/27 14:27:06

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。


相关专题: C++嵌入式HTTP服务器_初级代码游戏的博客-CSDN博客

基础:github源码指引:源码结构、编译、运行_github编译-CSDN博客

目录

一、基本信息

二、执行输出

三、浏览器访问


一、基本信息

        源码目录:httpd

        编译输出:myhttpd.exe

        执行命令即可运行,端口10000,写在代码里面的(myhttpd_t.cpp,第12行)。

二、执行输出

[08-22 17:22:02][应用][信息][myhttpd_t.cpp           : 106(main)][  0.00]程序版本:2024.03.07 08:41
[08-22 17:22:02][应用][信息][myhttpd.cpp             :  10(ShowHttpdVersion)][  0.00]

pid=5106 SIGCHLD    子进程Terminate或Stop
[08-22 17:22:02][应用][信息][myUserManager.h         :  44(InitUserManager)][  0.00]管理员 admin/iloveyou
[08-22 17:22:02][应用][信息][myUserManager.h         :  45(InitUserManager)][  0.00]用户 user/user
[08-22 17:22:02][应用][信息][myUserManager.h         :  46(InitUserManager)][  0.00]APP客户 appuser/apppass
[08-22 17:22:02][应用][信息][myhttpclient.h          : 280(Connect)][  0.00]Connect to 127.0.0.1 10001 ......
[08-22 17:22:02][应用][出错][myhttpclient.h          : 302(Connect)][  0.00]Connect to 127.0.0.1 10001 error
[08-22 17:22:02][应用][信息][myhttpd_t.cpp           :  84(start_httpd)][  0.00]start server ...
[08-22 17:22:02][应用][信息][myhttpd.h               :  41(run)][  0.00]站点标识 ct嵌入式WEB服务器
[08-22 17:22:02][应用][信息][myhttpd.h               :  55(run)][  0.00]页面:PN9ns_my_std11CWebCommandE /bin/CWebCommand 安装成功!
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]/admin/Pause 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]/admin/SetDebug 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]/admin/SetMax 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]/admin/ShowDir 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]/bin/CWebCommand 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]DownFile 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]ViewFile 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]shell 初始化成功
[08-22 17:22:02][**HTTPD**][信息][myhttpserver.h          : 731(_InitAllCommands)][  0.00]ssh 初始化成功
[08-22 17:22:02][**HTTPD**][信息][mysocketserver.h        : 688(_Start_Listen)][  0.00]管理服务启动 端口号 10001
[08-22 17:22:02][**HTTPD**][信息][mysocketserver.h        : 692(_Start_Listen)][  0.00]WWW服务启动 端口号 10000
[08-22 17:22:07][应用][信息][myhttpclient.h          : 280(Connect)][  0.00]Connect to 127.0.0.1 10001 ......
[08-22 17:22:07][应用][信息][myhttpd_t.cpp           :  73(start_httpd)][  0.01]端口成功连接,服务已启动 10000

        看到这个既启动成功,可以关闭控制台。

三、浏览器访问

        在浏览器地址栏输入“http://IP:10000”即可打开网站:

        帅吧?

        用户名密码在myUserManager.h的InitUserManager函数里:

		bool InitUserManager()
		{
			CUserManager* pUM = CUserManager::getInstPtr();
			pUM->admin_name = "admin";
			pUM->admin_password = "iloveyou";
			pUM->user_name = "user";
			pUM->user_password = "user";
			pUM->appuser_name = "appuser";
			pUM->appuser_password = "apppass";

			thelog << "管理员 " << pUM->admin_name << "/" << pUM->admin_password << endi;
			thelog << "用户 " << pUM->user_name << "/" << pUM->user_password << endi;
			thelog << "APP客户 " << pUM->appuser_name << "/" << pUM->appuser_password << endi;

			return true;
		}

        哦,启动时的日志也输出了用户名密码信息(这是违反安全规定的)。

        用admin/iloveyou进去看看:

        搞得有点乱啊,其实右边的内容是有独立入口的,在地址栏直接输入“default.asp”,

        看着清爽一点。这部分完全是C++代码实现的,之前那个框架则是html实现的。表格用了一个css文件,也可以去掉,C++代码里面的样式是经过设计的,css是我瞎写的。

        具体功能可以结合代码去理解。


(这里是文档结束)

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

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

相关文章

C# opencv识别二维码

新建桌面程序 安装opencvsharp 拖拽设计页面 选择图片识别代码 using OpenCvSharp; using System.Text;namespace QRcodeIdentity {public partial class Form1 : Form{public Form1(){InitializeComponent();}/// <summary>/// 选择图片/// </summary>/// <pa…

STM32——Flash闪存

以上部分&#xff0c;主存储器&#xff1a;程序存储器&#xff1b; 启动程序代码&#xff1a;系统存储器&#xff1b; 用户选择字节&#xff1a;选项字节 以下是闪存的管理员&#xff0c;用于擦除和读写的地址 C8T6一共64K&#xff0c;主存储器为64页 以下是整体框图&#x…

【数据库|第10期】SQL Server、Access和Sqlite 的表别名详解

日期&#xff1a;2024年8月28日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…

视频云流化与PaaS平台解决方案详细介绍

一、什么是视频云流化&#xff1f; 视频云流化&#xff08;Video Cloud Transcoding&#xff09;是一种将视频文件转换为适用于流媒体传输的不同格式和码率的过程。它是云计算和流媒体技术的结合&#xff0c;通过利用云平台的计算和存储资源&#xff0c;将视频内容转码为适应不…

什么是时钟偏差—Clock Skew?理解时钟分配网络中的时钟偏差

了解时钟偏差是什么,以及它如何通过理解同步电路、时钟传递和时钟分配网络对现代系统产生影响。 现代数字电子设计的最大挑战之一是能够满足时序约束。在数字电路中,保持可预测且组织良好的操作逻辑流的一种方法是进行精确控制和明确定义时序。 时钟偏差是这些电路设计中需…

Scratch教学案例-《三顾茅庐》:让编程学习如同故事般引人入胜

三顾茅庐-小虎鲸Scratch资源站 在编程的世界里&#xff0c;我们常常寻找那种既能激发创意&#xff0c;又能提升技能的学习方式。今天&#xff0c;小虎鲸Scratch资源站为您带来了一款独特的教学作品——《三顾茅庐》。这是一部将经典故事与编程教学巧妙结合的Scratch项目&#x…

.NET 8.0 前后分离快速开发框架

目录 前言 项目介绍 功能特点 适用范围 内置功能 项目技术 1、前端技术 2、传送门 3、后端技术 项目结构 项目效果 项目地址 最后 前言 大家好&#xff0c;推荐一个.NET 8.0 为核心&#xff0c;结合前端 Vue 框架&#xff0c;实现了前后端完全分离的设计理念。它不…

【Python机器学习】NLP词频背后的含义——隐性狄利克雷分布(LDiA)

目录 LDiA思想 基于LDiA主题模型的短消息语义分析 LDiALDA垃圾消息过滤器 更公平的对比&#xff1a;32个LDiA主题 对于大多数主题建模、语义搜索或基于内容的推荐引擎来说&#xff0c;LSA应该是首选方法。它的数学机理直观、有效&#xff0c;它会产生一个线性变换&#xff…

进程间通信--IPC机制

今天主要讲述独立的进程之间的通信&#xff0c;我们知道&#xff0c;进程是一个完整代码的执行过程&#xff0c;那么我们想实现在进程运行的过程之中传递信息或者是发送数据&#xff0c;就是通过IPC机制来完成。 一、什么是IPC机制 IPC&#xff1a;inter process communication…

文件泄密?不存在的!一文读懂文件防泄密最新五个小妙招

在当今信息化时代&#xff0c;企业数据的安全性显得尤为重要。文件泄密事件频发&#xff0c;不仅会给企业带来巨大的经济损失&#xff0c;还可能损害企业的声誉。因此&#xff0c;如何有效防止文件泄密成为了企业管理中的重中之重。本文将为大家介绍最新的五个防泄密妙招&#…

vue大数据展示之虚拟列表

面试代码学习 父组件&#xff1a; <template><div class"box"><!--items总条数、 size数据高度、 shownumber每次渲染数据--><list :items"items" :size"60" :shownumber"10"></list></div><…

要实现主动元数据,关键技术在算子级血缘解析

主动元数据管理最早被 Gartner 在 2016 年提出&#xff0c;在 2022 年 Gartner 公布的顶级战略技术趋势中&#xff0c;主动元数据被认为是实现 Data Fabric&#xff08;数据编织&#xff09;和主动数据治理的基石&#xff0c;也是实现 Data Fabric 的关键能力 。在这份技术趋势…

全面解析:动态住宅代理的关键优势

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

关于springboot的Rest请求映射处理的源码分析(二)

前面我们知道了他怎么处理表单映射&#xff0c;这里我们来研究一下&#xff0c;他是如何处理具体请求的。也就是说我有那么多/user你是怎么定位到我在哪个cotroller&#xff0c;并且你是怎么定位到我具体是哪个接口。 这里我们就来逐步定位一下这个问题。 一、组件分析 老路子…

Nacos 部分漏洞整理

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。 1. Naco简介 微信公众号搜索:南风漏洞复现文库 该文…

element中 el-input 不更新的问题

需要在上面输入数字,下面一列都更改成一样的数字 batchChange(list,field,value){console.log(list,field,value);list.forEach((i,index) > {i[field]value;this.$set(list,index, JSON.parse(JSON.stringify(i)));});} 用 JSON.parse(JSON.stringify(i)) 转一下后,就可以…

langchain入门系列之八 langgraph多agent示例

在之前的文章中我们介绍了langgraph&#xff0c;并且用它做了一个小小的示例&#xff0c;在本文中&#xff0c;我们将使用智普清言来构建多agent 系统。百度千帆对langgraph支持较差(尤其是强制要求奇数偶数的role设置&#xff0c;传入messages的奇数偶数要求&#xff0c;让人有…

用好外呼机器人,帮助企业提升客户管理效率

外呼机器人&#xff0c;作为现代科技与企业管理的结合体&#xff0c;正在企业客户管理领域掀起革命性的变化。随着人工智能技术的不断进步&#xff0c;外呼机器人不仅实现了自动化呼叫&#xff0c;还能根据客户的语音情感进行相应的反馈和操作&#xff0c;极大地提高了客户满意…

AI大模型编写多线程并发框架(六十三):监听器优化·上

系列文章目录 文章目录 系列文章目录前言一、项目背景二、第七轮对话-补充异步执行代码三、第八轮对话-增加累计完成等字眼四、第九轮对话-线程安全优化五、第十轮对话-增加运行时数据七、参考文章 前言 在这个充满技术创新的时代&#xff0c;AI大模型正成为开发者们的新宠。它…

SpringBoot+Vue的图书管理系统【包含运行步骤】

SpringBootVue图书管理系统 一、项目介绍1. 图书信息管理2. 图书类型管理3. 图书借阅管理4. 用户管理 二、技术选型后端技术选型前端技术选型 三、运行步骤后端启动前端启动 四、项目演示源码获取方式 五、总结与展望 大家好&#xff0c;这里是程序猿代码之路&#xff01;随着信…