在c和php之间传递数据

时间:2014-07-15 13:33:26

标签: php c mongoose-web-server

我有两个应用程序 - 一个php web应用程序和c程序。 php应用程序必须将数据发送到返回结果的c程序。 c程序必须在一个循环中一直运行(而(true),因为它必须将先前输入的数据保存在内存中。

我通过使用文件(输入和输出文件)处理在c和php之间传递数据的问题。 如果我的web应用程序发生了变化,我的php脚本会更新一个由我的c程序读取的文件。输出将写入另一个文件。 Web应用程序一直在寻找变化。

我认为解决这样的问题不是最聪明的解决方案。 Probaly它不是必需的文件访问。

借助以下线程的灵感和帮助,我认为使用一种c php服务器桥可能是一个很好的解决方案。

How to pass value and run c program in php( web application)

Passing data between PHP and C executable in linux

我是从mongoose开始的。 Mongoose是一个非常轻量级的网络服务器。 我目前的想法是我的Web应用程序将通过POST直接发送数据到我的c程序。请求由mongoose webserver处理。 这是要走的路吗?或者是在两个应用程序中拆分它的更好的解决方案 1)处理输入输出的web服务器 - 两个程序之间的变量由共享内存传递 2)我当前的c程序用于我的操作(通过共享内存输入/输出)

或者这是完全错误的方式和a)我应该坚持我的文件解决方案b)还有更好的方法吗? 对于所有这个问题我感到很抱歉,但我很陌生并且很挣扎,并且对这一切并不是很有信心。

修改
我试着更具体地说明我的c程序。基本上它是一个模拟。它就像一个状态流,大约有20-40个输入都是整数,大部分时间只是0或1.程序作用于输入和先前状态的基础。通过将输入文件更改为原始状态,在一次迭代后重置输入。

输出文件始终使用相应的输出值更新(如var = 1 var2 = 3)

2 个答案:

答案 0 :(得分:1)

您可以使用DBMS进行数据共享。

答案 1 :(得分:0)

我将这个C程序开发为SOAP WebService,这样它就可以执行一次并等待请求。 (或最终以CGI模式工作并在需要时执行)

您的PHP脚本(使用SOAP library)可以从您的程序中调用单个C函数并接收它的结果。使用XML语法在不同语言之间交换所有数据,如函数参数,对象等。

我曾经做过一次在PHP,C和Python之间建立通信,它运行良好。我用了gSOAP。我正式使用C ++,我知道这不是正确的方法,但你可以将它们混合起来,因为它们兼容。