在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

相关推荐
科技每日热闻几秒前
电气设备综合维保服务商怎么选?从预防性维护到数字化运维,看懂五个关键能力——企业选择维保合作伙伴,不能只看“坏了能不能修”,更要看能否覆盖资产与系统的长期运营
大数据·运维·人工智能
黎相思1 分钟前
LRU Cache
c++·缓存
UIU1145 分钟前
P1003 [NOIP 2011 提高组] 铺地毯
数据结构·c++·算法
Dotrust东信创智6 分钟前
HIL台架上的“无人夜班“:东信创智用AI重塑汽车软件测试全链路——测试不再是项目的瓶颈,而是交付的底气
人工智能·汽车
电子制造自留地19 分钟前
AI服务器高多层PCB设计:阻抗控制、层间对位与孔金属化工程要点
大数据·网络·人工智能·科技·pcb工艺
QYR-分析19 分钟前
汽车车窗调节器市场研究:成熟零部件赛道,模块化集成成为核心方向
人工智能·汽车
星云低代码开发平台24 分钟前
ERP 与 CRM 客户信用核对:业务键、时点和权限验收
大数据·数据库·人工智能
TF男孩26 分钟前
老AI人面对MCP、Skills等新名词
人工智能·程序员
AI Coder 码农王29 分钟前
AgentScope Java v2 第2课,ReActAgent 的循环引擎
人工智能