c++和Python之间的通信
Communication between C++ and Python
我正在寻找一种高效和智能的方式来在c++程序和python脚本之间发送数据。我有一个c++程序,可以实时计算30Hz的坐标。我想用python脚本访问这些坐标。我的第一个想法是简单地创建一个.txt文件并将坐标写入其中,然后让Python打开该文件并读取。但我想,这肯定是一种更智能、更高效的方式,使用内存而不是硬盘。
有人有什么好的解决方案吗?c++程序应该将3个坐标(x,y,z)写入某种缓冲区或文件,Python程序可以打开它并读取它们。理想情况下,c++程序每次都覆盖坐标,同时读写文件/缓冲区是没有问题的。
谢谢你的帮助
您有两个基本选项:
- 将c++代码和python代码作为两个独立的程序,在两个独立的进程中运行,并使用IPC机制
- 按照grc的建议,将c++代码与你的代码链接起来。
如果您已经编写了一个完整的复杂c++程序,那么第一个选项可能更好。而且,它通常更容易调试和维护。
对于特定的IPC机制,通常使用套接字,因为它们在操作系统级别具有某种标准化的跨平台api,并且如果您需要在不同的机器上运行两个程序仍然可以工作。如果你处理的是一台现代的桌面机器,socket应该足以每秒传输30次三个坐标。
如果你真的需要更多的性能,你可以研究(命名的或命名的)管道,但是你可能需要在c++端做一些额外的工作来使它跨平台。
我认为如果python和c++程序在同一台机器上,我们可以使用命名管道来进行通信。
相关文章:
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 通过插槽和信号在不同线程中的两个qt对象之间进行通信
- C++ 两台不同机器之间通过wifi进行套接字通信
- 线程之间的通信不起作用 - C++
- 通过USB在PC和Arduino之间进行串行通信
- 管理器类和对象类之间的通信
- 使用命名管道在 C# 和C++应用程序之间进行持续通信
- Python 3 套接字和 QTcpsocket (c++) 之间的通信失败
- 如何在嵌入式浏览器和Webside之间进行双向通信
- C++程序和未识别程序之间的双向通信
- 使用C++在同一系统上运行的 2 个服务之间进行通信
- C# 和C++应用程序之间的通信
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- 如何在 gtk+ c 中的回调之间进行通信
- Electron应用程序和Win32本机桌面应用程序之间的进程间通信
- 如何在线程之间进行通信和等效的waitforsingleobject()
- C++ 和 Simulink 之间通过 UDP 进行通信
- 在两个Windows QT5之间进行通信
- 覆盆子Pi(QT C )和Arduino(Arduino IDE)之间的通信
- Shell扩展窗口:最好的通信之间的ContextMenu和IconOverlay