为了RPC的目的,我有一个用C++编写的带有Web界面的程序。我可以拨打http://localhost/ListVariables
或http://localhost/RunFunction?var=1
并让C代码执行ListVariables或RunFunction。它可以工作,但是我不想在C/C++中管理Web服务器,因为那里有很多好的Python Web服务器。将Python HTTP服务器作为RPC服务器嵌入到C程序中?
我想像的是将C程序调用到Python中,以启动另一个线程(即Tornado)上的Web服务器,返回到C然后继续进行计算。然后,当Python服务器在http://localhost/ListVariables
上收到请求时,它会将调回到C中,并在已经运行的进程上执行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上找到很多资源,因为我发现的大多数示例都描述链接到库而不是已经运行的进程。是否有可能让Python回调到正在运行的C程序中?
谢谢。现在我只需要弄清楚如何用Cython来做到这一点,因为从我读过的内容中可以看出,它抽象了很多PythonC API。 –