我正在寻找关于可能的IPC机制的建议,这些机制是:
我有什么选择?我正在Linux下编程,但我希望我所写的东西将来可以移植到其他OSes。我考虑过使用套接字、命名管道或类似DBus之类的东西。
发布于 2008-09-15 19:22:37
就速度而言,最好的跨平台IPC机制将是管道。但是,这假设您希望在同一台计算机上安装跨平台IPC。如果您想要能够与远程计算机上的进程进行对话,则需要考虑使用套接字。幸运的是,如果您谈论的是TCP,那么套接字和管道的行为基本相同。虽然用于设置它们和连接它们的API是不同的,但它们的作用就像数据流一样。
然而,困难的部分不是沟通渠道,而是你通过它传递的信息。您真的很想了解一些将为您执行验证和解析的内容。我建议你看看谷歌的协议缓冲器。您基本上创建了一个spec文件,该文件描述了要在进程之间传递的对象,还有一个编译器,它以多种不同的语言生成代码,用于读取和写入符合规范的对象。它比自己想出一个消息传递协议和解析器要容易得多(而且不太容易出错)。
发布于 2008-09-13 16:19:10
对于C++,请查看Boost IPC。
您也可以为脚本语言创建或找到一些绑定。
否则,如果能够与脚本语言进行接口真的很重要,那么最好的选择就是使用文件、管道或套接字,甚至更高级别的抽象(如HTTP )。
发布于 2008-09-16 17:04:46
为什么不开D巴士呢?这是一个非常简单的消息传递系统,运行在几乎所有的平台上,并且是为健壮性而设计的。目前,几乎所有的脚本语言都支持它。
http://freedesktop.org/wiki/Software/dbus
https://stackoverflow.com/questions/60649
复制相似问题