我有一个用 C 编写的简单服务器。它的主要目的是通过专有协议与一些业务伙伴进行通信。由于这个原因和其他一些原因,它必须用 C 编写。但是,我还有许多其他进程,它们是用其他语言(例如 Python)编写的,它们必须与服务器(本地,在同一 Linux 服务器上)通信。
在这种情况下,跨语言 IPC 的最佳选择是什么?具体来说,我认为我掌握了传输技术:Unix 域套接字、命名管道、共享内存、ZeroMQ(Crossroads)。我对实现协议的最佳方式更感兴趣,以保持 C 代码小且可维护,同时仍允许与其他语言进行通信。
编辑:似乎有些混乱。我对讨论域套接字、共享内存等的优缺点不感兴趣。人。我对msgpack(感谢 unwind)以及实现有线协议的其他技术/方法感兴趣。