3

PHP Web アプリケーションと C プログラムの 2 つのアプリケーションがあります。PHP アプリは、結果を返す C プログラムにデータを送信する必要があります。c プログラムは、前の入力のデータをメモリに保持する必要があるため、サイクル (while(true)) 内で常に実行する必要があります。

ファイル(入力および出力ファイル)を使用して、cとphpの間でデータを渡す問題を処理します。私の Web アプリケーションに変更がある場合、私の php スクリプトはファイルを更新し、それは私の C プログラムによって読み取られます。出力は別のファイルに書き込まれます。Web アプリケーションは常に変更を探しています。

このような問題を解決するのは賢明な解決策ではないと思います。おそらく、必要のないファイルアクセスがたくさんあります。

次のスレッドからのインスピレーションと助けを借りて、一種のC phpサーバーブリッジを使用することが良い解決策になると思いました.

PHP(Webアプリケーション)で値を渡してCプログラムを実行する方法

LinuxでPHPとC実行可​​能ファイル間でデータを渡す

私はマングースから始めました。Mongoose は非常に軽量な Web サーバーです。私の現在の考えは、私の Web アプリケーションは POST 経由でデータを C プログラムに直接送信するというものです。リクエストはマングース Web サーバーによって処理されます。これは行く方法ですか?または、2つのアプリケーションに分割する方が良い解決策になります1)入力出力を処理するWebサーバー-両方のプログラム間の変数は共有メモリによって渡されます2)現在の操作用のCプログラム(共有メモリを介した入力/出力)

または、これはすべて完全に間違った方法であり、a) ファイルソリューションに固執する必要があります b) もっと良い方法がありますか? このすべての質問で申し訳ありませんが、私はcにかなり慣れていないため、多くの苦労をしており、これらすべてに自信がありません。

編集
私のCプログラムが何をするかをより具体的にしようとしています。基本的にシミュレーションです。これは約 20 ~ 40 の入力がすべて整数で、ほとんどの場合 0 または 1 である状態フローのようなものです。プログラムは、入力と以前の状態のベースに基づいて動作します。入力ファイルを元の状態に変更することにより、1 回の反復後に入力がリセットされます。

出力ファイルは、対応する出力値 (var = 1 var2 = 3 など) で常に更新されます。

4

2 に答える 2

0

この C プログラムをSOAP WebServiceとして開発すると、一度実行してリクエストを待つことができます。(または、最終的には CGI モードで動作し、必要に応じて実行されます)

PHP スクリプト ( SOAP ライブラリを使用) は、プログラムから単一の C 関数を呼び出して、その結果を受け取ることができます。関数の引数、オブジェクトなどのすべてのデータは、XML 構文を使用して異なる言語間で交換されます。

PHP、C、およびPython間の通信を確立するために一度実行しましたが、うまくいきました。gSOAPを使用しました。私は公式に C++ を使用しています。これが適切な方法ではないことはわかっていますが、互換性があるため、それらを混在させることができます。

于 2014-07-16T09:09:54.247 に答える