繁体   English   中英

具有C ++运行线程的Raspberry Pi,可在Web上发布数据

[英]Raspberry Pi with c++ running thread, publish data on web

我想在网页上显示在我的c ++程序中处理的一些值,应该从许多客户端打开该值,并且该网页对于我的应用程序不是必需的。

我之所以描述这些要求是因为我为解决这个问题而变得疯狂:我发现了很多有关cgi的示例,或多或少地清楚了cgi的工作原理,这对于我的研究范围来说还不够,因为它是一个从网页调用的过程,但是没有与我的应用程序连接。 我的主程序不能通过cgi程序运行,即使从未打开过网页也应该可以运行(应该是可选的)。

那么,如何在cgi程序和主c ++程序之间共享数据?

保存文件或数据库真的是唯一的方法吗?

最后,我需要拦截“获取”和“发布”信息,或者从Web服务器(服务器代码脚本)调用我的函数。但是如何?

谢谢安德里亚

如果是单向系统(例如,数据仅从C ++程序流向网站上的用户,而不是从网站流向C ++程序),则最简单的方法将是写入文件,最好是写入数据库。

您可以使用MySQL连接器之代码从C ++代码写入数据库,并且可以使用Apache服务器上的PHP很快地编写一个基本的网站来显示来自数据库的数据。

另一种解决方案可能是,每当创建新数据时,就直接从C ++程序将输出写入HTML文件。 请求数据的用户可以访问您的服务器,并从HTML文件中获取最新数据。

我这样做的方法是有一个小程序来测量事物并将数据输出到文件,使用mvrename以确保原子地替换文件。

然后使用具有编程功能的Web服务器(我知道PHP,但是您可以使用Java,Java Script,Python,C,C ++或其他十几种语言)。

保持简单-除非您绝对有标准使其变得不同,否则在完成工作时简单总比复杂要好-一旦工作成功,您就可以摆弄它,或者完全重建它并使其更好,但是至少你有一些最先起作用的东西。

对事物的请求可以存储在应用程序读取的配置文件中-作为POST或URL参数发送(如果要使用“功能3”,那么您可以使用: http://example.com/mypage.php?function=3 : http://example.com/mypage.php?function=3等)。

这不是唯一的方法,有很多解决方案。 但这是简单的方法,它将在本周末左右解决并可靠地工作,而不是一个需要花费数周时间才能解决问题并且永远无法可靠工作的解决方案。

我在评论中建议“您可以使用共享内存”。 我不建议您这样做。 它很难使用,并且您必须绝对确保数据是原子更新的,否则您将遇到“部分数据属于一个更新,另一部分属于较旧的更新”的问题,因此非常混乱。 您不想花费数天或数周的时间来使共享内存同步正常工作。 如果您确实需要在Web服务器和应用程序之间进行通信,我将使用某种形式的两个(命名为?)管道并将请求发送至应用程序,然后将响应发送回去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM