gpt4 book ai didi

c++ - 将 Python HTTP 服务器作为 RPC 服务器嵌入到 C 程序中?

转载 作者:可可西里 更新时间:2023-11-01 16:38:43 27 4
gpt4 key购买 nike

我有一个用 C++ 编写的程序,带有用于 RPC 的 Web 界面。我可以调用 http://localhost/ListVariableshttp://localhost/RunFunction?var=1 并让 C 代码执行 ListVariables 或 RunFunction。它可以工作,但我宁愿不必在 C/C++ 中管理 Web 服务器,因为那里有那么多优秀的 Python Web 服务器。

我想象的是让 C 程序调用 Python 以在另一个线程(即 Tornado)上启动 Web 服务器,返回到 C,然后继续进行计算。然后,当 Python 服务器收到对 http://localhost/ListVariables 的请求时,它会将 back 调用到 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 程序?

最佳答案

当然。 Create a "fake" module在注入(inject) sys.modules 的 C 程序中,Python 代码可以导入和访问它,就像任何其他模块一样。

关于c++ - 将 Python HTTP 服务器作为 RPC 服务器嵌入到 C 程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022970/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com