RPC を目的とした Web インターフェイスを備えた C++ で書かれたプログラムがあります。http://localhost/ListVariables
orを呼び出しhttp://localhost/RunFunction?var=1
て、C コードで ListVariables または RunFunction を実行することができます。それは機能しますが、優れた Python Web サーバーがたくさんある場合、C/C++ で Web サーバーを管理する必要はありません。
私が想像しているのは、C プログラムが Python を呼び出して、別のスレッド (Tornado など) で Web サーバーを起動し、C に戻ってから、計算をやり続けることです。次に、Python サーバーが でリクエストを受け取ると、 Chttp://localhost/ListVariables
にコールバックし、すでに実行中のプロセスで ListVariables を実行します。
C -----> processing -----------> processing ------------> RPC: FuncA -------->
| ^ |
\---> Python Web Server ---------- Request for: FuncA --/ ... \-------->
^
browser: http://localhost/FuncA ---/
このプロジェクトには、プログラムを最初から C から開始する必要があるという残念な警告があります。いくつかの調査を行った後、Python-->C および C->Python は Cython で実行できるため、これは少し境界的なケースのようです。ただし、C-->Python-->C に関する多くのリソースを見つけることができません。私が見つけたほとんどの例では、既に実行中のプロセスではなく、ライブラリへのリンクについて説明しているためです。実行中の C プログラムに Python をコールバックさせることは可能ですか?