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

初级代码游戏的专栏介绍与文章目录-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.mzph.cn/bicheng/52948.shtml

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

相关文章

基于Spring Boot的文字识别系统

前端使用htmlcssjs&#xff0c;后端使用Spring Boot&#xff0c;数据库使用mysql&#xff0c;识别算法有两个&#xff0c;一个是使用百度OCR接口&#xff0c;一个是自己写一个python&#xff0c;用flask包装。 其中百度OCR接口可以去免费申请&#xff0c;然后把appid、apikey、…

Netty 知识目录

Netty 知识结构Netty Bootstrap/ServerBootstrapNetty EventLoopGroup/EventLoopNetty ChannelNetty ChannelPipeline/ChannelHandlerNetty ByteBufNetty TCPNetty UDPNetty HTTPNetty WebsocketNetty SSL/TLS

【王树森】Transformer模型(1/2): 剥离RNN,保留Attention(个人向笔记)

Transformer简介 Transformer 是一个Seq2Seq模型Tramsformer 不是RNNTransfomer 只有attention和全连接层机器翻译在大型数据集上完爆最好的RNN Review Attention for RNN 这节课讲的attention相对比于前两节课多了一个 v i v_i vi​&#xff0c;之前是用权重直接乘 h h h&…

【GD32】从零开始学GD32单片机 | USB通用串行总线接口+HID键盘例程(GD32F470ZGT6)

1. 简介 USB&#xff0c;全称通用串行总线&#xff0c;相信大家都非常熟悉了&#xff0c;日常生活只要用到手机电脑都离不开这个接口&#xff0c;像鼠标键盘U盘都需要使用这个接口进行数据传输&#xff0c;下面简单介绍一下。 1.1 版本标准 USB的标准总体可以分为低速、全速和…

业务资源管理模式语言02

图1 模式间的依赖关系 第一节&#xff1a;最开始&#xff0c;关注应用中包括的资源。首先&#xff0c;必须标识资源&#xff08;1&#xff09;&#xff0c;下一步&#xff0c;检查资源限定&#xff08;2&#xff09;&#xff0c;同时量化资源&#xff08;3&#xff09; 模式1…

c#笔记5 详解事件的内置类型EventHandler、windows事件在winform中的运用

为什么要研究这一问题&#xff1f; 事件和委托可以说是息息相关。 前面先解释了什么是委托&#xff0c;怎么定义一个委托以及怎么使用匿名方法来内联地新建委托。 事实上事件这一机制在c#的程序开发中展很重要的地位&#xff0c;尤其是接触了winform软件开发的同学们应该都知…

Unity 动态光照贴图,加载后显示变暗或者变白问题 ReflectionProbe的使用

动态加载光照贴图代码&#xff0c;可参考这个帖子 Unity 预制动态绑定光照贴图遇到变白问题_unity urp 动态加载光照信息 变黑-CSDN博客 这次遇到的问题是&#xff0c;在编辑器下光照贴图能正常显示&#xff0c;打出apk后光照贴图加载后变黑的问题 以下4张图代表4种状态&…

duckDB源码GDB调试

duckDB源码GDB调试 一&#xff0c;首先编译源代码&#xff0c;使用debug模式 在根目录下 make debug cd ./build/debug/test二&#xff0c;gdb调试unittest gdb ./unittest三&#xff0c;打断点 b dictionary_compression.cpp:621四&#xff0c;执行unittest run test/sq…

opencascade 重叠曲线设置优先显示

‌OpenCASCADE重叠曲线显示设置‌ 当出现重叠曲线时&#xff0c;往往需要设置 优先显示的对象 关键点 SetDisplayPriority SetLayer

磁性齿轮箱市场报告:前三大厂商占有大约79.0%的市场份额

磁性齿轮箱是一种用于扭矩和速度转换的非接触式机构。它们无磨损、无摩擦、无疲劳。它们不需要润滑剂&#xff0c;并且可以针对其他机械特性&#xff08;如刚度或阻尼&#xff09;进行定制。 一、全球磁性齿轮箱行业现状与洞察 据 QYResearch 调研团队最新发布的“全球磁性齿轮…

在 Next.js 项目中使用 Clerk 实现 OAuth 登录与回调处理

1. 什么是 Clerk 和 OAuth 登录&#xff1f; Clerk 是一个身份验证管理工具&#xff0c;可以轻松集成到 Web 应用中&#xff0c;提供安全的用户登录、注册等功能。OAuth 是一种常见的授权协议&#xff0c;允许用户通过第三方服务&#xff08;如 Google、Microsoft&#xff09;…

10分钟了解OPPO中间件容器化实践

背景 OPPO是一家全球化的科技公司&#xff0c;随着公司的快速发展&#xff0c;业务方向越来越多&#xff0c;对中间件的依赖也越来越紧密&#xff0c;中间件的集群的数量成倍数增长&#xff0c;在中间件的部署&#xff0c;使用&#xff0c;以及运维出现各种问题。 1.中间件与业…

PCM转PCMA(pcm_alaw,G711.A率)转换表 PCM转PCMU(pcm_ulaw,G711.U率)转换表

PCM转PCMA&#xff08;pcm_alaw&#xff0c;G711.A率&#xff09;转换表 && PCM转PCMU&#xff08;pcm_ulaw&#xff0c;G711.U率&#xff09;转换表 文章目录 PCM转PCMA&#xff08;pcm_alaw&#xff0c;G711.A率&#xff09;转换表 && PCM转PCMU&#xff08;…

桥接与NET

仔细看看下面两幅图 net模式&#xff0c;就是在你的Windows电脑&#xff08;假设叫A电脑&#xff09;的网络基础上&#xff0c;再生成一个子网络&#xff0c;ip的前两位默认就是192.168&#xff0c;然后第三位是随机&#xff0c;第四位是自己可以手动设置的。使用这种模式唯一的…

Centos 7 升级glibc2.33 记录

查看glibc升级所需的依赖编译环境&#xff1a; cd $HOME/glibc-$glibc_ver cat INSTALL | grep -E "newer|later" glibc升级参考链接&#xff1a; 主要参考链接&#xff1a;https://blog.csdn.net/optimistic001/article/details/136705055 次要参考链接&#x…

设计模式结构型模式之代理模式

结构型模式之代理模式 一、概念和使用场景1、概念2、核心思想3、java实现代理模式的方式4、使用场景 二、示例讲解1. 静态代理2. 动态代理 三、总结1、使用规则2、代理模式的优点包括&#xff1a;3、代理模式的缺点包括&#xff1a; 一、概念和使用场景 1、概念 代理模式是一…

如何设计数据库排序字段

最简单的办法就是按照id进行排序&#xff0c;越小的id排序越前&#xff0c;不过这完全没有灵活性可言&#xff0c;所以 int字段作为排序 采用一个额外的int字段作为排序成为更普遍的方式 考虑现实场景中&#xff0c;很多时候是需要进行中间插入排序的&#xff0c;这意味要求…

Numpy 数组及矩阵创建详解

基本数组创建方式 numpy中的主要数据类型为ndarray类型,也可以称之为数组,其在内存中是连续存储的.numpy底层大多C语言进行编写,所以运行效率较高,并且numpy库支持并行计算,如矩阵乘法以及其他线性代数操作 np.array() np.array()是numpy中最为基础和常用的创建数组的方式,其…

HUD杂散光环境模拟测试设备

概述 HUD&#xff08;Head-Up Display&#xff09;杂散光环境模拟测试设备是用于模拟飞行器在实际运行过程中可能遇到的多种光照环境的系统。它主要用于测试和验证HUD显示系统的性能&#xff0c;确保其能在各种光线条件下清晰、准确地显示信息&#xff0c;从而保障飞行员在复杂…

redis面试(二十六)总结

到这里 redis的相关知识就要告一段落了&#xff0c;给前面的系列文章做一下大致的总结。 前四篇是redis底层数据结构实现逻辑剖析&#xff0c;四、五两篇说的是持久化和淘汰策略&#xff0c;后面大量篇幅讲的都是redis锁相关。 其他相关的一些面试问题&#xff0c;之前也发过…