我的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是我瞎写的。
具体功能可以结合代码去理解。
(这里是文档结束)