我想在网页上显示我的c ++程序中处理的一些值,这应该是从许多客户端打开的,网页对我的应用程序来说不是强制性的。
我描述了这些要求,因为我疯狂地解决了这个问题: 我发现了许多关于cgi的样本,它或多或少都清楚它是如何工作的,这对我的范围来说还不够,因为它是一个从网页调用的过程,但它与我的应用程序没有关系。我的主要不能通过cgi程序,它应该运行,即使网页永远不会打开(应该是可选的)。
那么,我如何在cgi程序和我的主要c ++程序之间共享数据?
保存在文件或数据库上真的是唯一的方法吗?
最后我需要截取“获取”和“发布”信息,或者从网络服务器调用我的功能(服务器代码脚本)..但是如何?
由于 安德烈
答案 0 :(得分:1)
如果它是单向系统(例如,数据仅从C ++程序流向网站上的用户,而不是从网站流向C ++程序),那么最简单的方法是写入文件或最好是数据库。
您可以使用类似the MySQL connector的内容从C ++代码写入数据库,并且可以在Apache服务器上以PHP快速编写显示数据库的基本网站。
另一种解决方案可能是在创建新数据时直接从C ++程序将输出写入HTML文件。请求数据的用户只需访问您的服务器并从HTML文件中获取最新数据。
答案 1 :(得分:1)
我这样做的方法是使用mv
或rename
来测量事物并将数据输出到文件的小程序,以确保文件被原子替换。
然后使用具有编程功能的Web服务器(我知道PHP,但您可以使用Java,Java Script,Python,C,C ++或其他十几种语言)。
保持简单 - 除非你绝对有一个标准让它变得与众不同,简单总是要比完成任务更复杂 - 一旦它完成工作,你可以摆弄它,或者完全重建它让它变得更好,但至少你有一些先行的东西。
对事物的请求可以存储在应用程序读取的配置文件中 - 作为POST或URL参数发送(如果要使用"功能3",则使用:{{1}等等)。
这不是唯一的方式,有很多解决方案。但这是一种简单的方式,它将在本周末左右解决并可靠地工作,而不是一个解决问题的解决方案,而且不能可靠地工作#34;永远#34;。
我建议"你可以使用共享内存"在评论中。你这样做并不是我的建议。它很难使用,你需要绝对确保你的数据是原子更新的,否则你会遇到问题"部分数据属于一个更新,另一个属于旧更新",因此很混乱。您不想花费数天或数周的时间来尝试共享内存同步。如果你真的需要在网络服务器和你的应用程序之间进行通信,我会使用一些表格二(命名的?)管道并向应用程序发送请求,然后发送回来。