在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

相关推荐
NAGNIP1 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab2 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab2 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
十日十行5 小时前
Linux和window共享文件夹
linux
AngelPP6 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年6 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼6 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS6 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区7 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈8 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能