jde*_*uce 3 c python ipc thrift protocol-buffers
我有一个现有的 C 进程,可以输入一个文本并生成一个图像文件。由于它与外部系统的接口,此 C 过程具有很高的设置/拆卸成本。一旦设置/拆卸发生,从文本中实际生成图像几乎是即时的。
我的计划是对 C 进程进行守护进程,因此它将无限循环地接收文本并生成图像文件,同时保持与外部系统的连接。
我还将用 python 编写一个小型客户端程序,它将与守护程序接口以发送文本/接收图像。
目标操作系统是 unix。
问题是,在这种情况下,在 python/C 之间进行双向 IPC 的最佳方法是什么?我应该只打开一个 unix 域套接字并来回发送打包的结构,还是应该查看 Apache Thrift 或 protobuf 之类的东西?
更新:
只是要保持简单,并打开一个 unix 域套接字
我认为套接字是通往这里的方式。在 Unix 上,我会推荐AF_UNIX套接字(请参阅unix(7)联机帮助页)。这些很容易在 C++ 和 python(sockets模块)中创建。这避免了端口冲突或在本地系统上打开端口的权限问题。
Unix 套接字性能相当好,AF_INET6如果您决定与远程工作者一起工作,可以很容易地将其替换为套接字。
对于打包/解包数据,struct使用编译Struct对象的模块对我来说似乎是合理的。这就是我过去所做的并且性能非常好(没有进行测量,因为它对我来说太好了,无法进行调查)。