在AI的帮助下,用C++构造微型http server

有一个项目,要求在一个嵌入式linux设备上实现http网页配置和采集到的实时数据的展示,做为一个C++程序员,又是嵌入式linux自然想到用C++来实现数据的采集存贮与传送。采集存贮都好办,传送用的是TCP通信,也没问题,实现http server有点麻烦了,以前有一项目,http服务器是用Apache做的,当时用的php做的网页,各种问题,加上php现在好象已退出主流了,最主要的是项目中对http服务的要求也不高,就不沿用Apache的方法了。于是想到自已写一个http服务,却发现http的协议很繁琐,于是在网上一顿搜索,又问了AI,了解到mongoose作为一个开源的http库非常适合。

mongoose库是作C编写的,只有一个C文件和一个h文件。可从github上下载,地址是https://github.com/cesanta/mongoose/releases。下载的项目中还会有许多demo,对于mongoose的使用非常有参考价值。mongoose,当前最新的版本是7.20可以让你构建一个简易的http服务器,websoket服务器(websoket可以实现在web网页上快速的展示实时数据),TCP的服务端和客户端,当然还以用作其它用处,自已研究demo吧。只是要注意的是mongoose是c99标准的C编写的,在有些C++的编译器上可能要指定符合C99的编译器来编译。他最大的好处是可用于windows和linux双平台,也许还支持其它的。我发现这个库后最先做的就是把自已的TCP通信的部分用它来完成,相同的代码可在两个平台上编译运行,实在方便的太多太多。

懒得写代码,就用AI来写,比如豆包,百度,千问等。可惜AI写的代码由于mongoose版本很多,且版本与版本之间变化较大,AI很难一次完成,需要不断的让AI进行修改。修改到最后,放弃的通常是你。所以建议还是参考demo来自行改写。

在参照demo做了一个简单的http服务器后,需要在浏览器上显示web页面了。AI似乎非常善于做此事。输入要求,AI就能生成一个可用的页面。为了在页面上实时更新数据,还需用到websocket通信(大多数的浏览器均支持websocket了),还需进一步要求在页面上加入websocket客户端功能。此时,AI又有新问题了,页面没能完美匹配基于mongoose的http服务器,和ws服务器连接不上。到底是服务器的问题,还是页面的问题,自已先用mongoose写一个ws client的程序,连接ws 服务器。是正常的,数据也能实时传递回来。说明mongoose的ws服务器程序是正常的,重点在于ws的页面了。此时,体现出AI的局限了,反复交流后,均未能解决问题。无意中在网上搜到一个用websoket的页面示例,一试,和我的ws服务器刚好能配合上,连接没有问题。于是将此页面提交给AI,让其与AI生成的页面对比,AI轻松的找到了不同点,又让其参照能用的页面做修改。修改后的页面可正常工作了,和ws的服务器连上了,数据也能实时显示了。

为了演示数据ws实时传输的功能,我再次要求AI做一个c++的获取CPU占用率,CPU温度,内存占用率,的程序,这次AI做得很出色,不仅完成了上述功能,还超额完成了,我的CPU是四核的,AI还把每个核的占用率都取了出来。把AI的代码嵌入前面所述的http服务器的代码中,再让AI修改网页展示CPU占用率,温度,内存占用率数据。这个一个用web页面展示CPU占用率,CPU温度以及内存占情况的微型项目就做成了。后期可以根据需求采集和展示所需的实时实际数据。

最后,谈下感受,AI真是一个好东西,可以节省程序员们大量的劳动,但它正如90年代时,会计软件对会计行业的冲击一样,它只能减轻工作量,却还不能取代会计的工作。

话不多说,下载链接:https://download.csdn.net/download/hugerat/92552730

欢迎各位朋友交流:945685172@qq.com

相关推荐
-森屿安年-2 小时前
unordered_map 和 unordered_set 的实现
数据结构·c++·散列表
AI街潜水的八角2 小时前
深度学习洪水分割系统2:含训练测试代码和数据集
人工智能·深度学习
万行2 小时前
机器学习&第二章线性回归
人工智能·python·机器学习·线性回归
小宇的天下2 小时前
HBM(高带宽内存)深度解析:先进封装视角的技术指南
网络·人工智能
九久。2 小时前
手动实现std:iterator/std:string/std::vector/std::list/std::map/std:set
c++·stl
小羊羊Python2 小时前
Sound Maze - 基于 SFML+C++14 的音效迷宫开源游戏 | MIT 协议
c++·游戏·开源
rongcj2 小时前
2026,“硅基经济”的时代正在悄然来临
人工智能
狼叔也疯狂2 小时前
英语启蒙SSS绘本第一辑50册高清PDF可打印
人工智能·全文检索
txinyu的博客2 小时前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http