同一台机器上的两个程序相互通信的最佳方法是什么

时间:2009-12-04 17:53:32

标签: c# c++ ipc communication

我需要将一些数据(整数)从一个(C ++)程序传递到另一个(C#)。最快的方法是什么?

P.S。:OS:Windows XP

7 个答案:

答案 0 :(得分:9)

我个人对此的偏好,假设您使用的是C ++和C#,并且它们位于同一系统上,那就是使用Pipes。

他们从native code (C++)以及C#经NamedPipeClientStreamNamedPipeServerStream工作得非常好。

但是,Interprocess Communication还有其他选项,其中任何一个都可以使用。

答案 1 :(得分:2)

共享内存将是最快的,但命名管道也非常快且更容易使用。

答案 2 :(得分:2)

查看this article以查看可用选项的减少情况。你最好的选择可能是pipe

答案 3 :(得分:1)

使用文件是最简单的方法。如果您需要速度,那么网络套接字可能是一个不错的选择。

答案 4 :(得分:1)

如果您的通信是单向的并且您的消息很小,则可以使用邮件槽。否则我建议使用命名管道(正如其他人推荐的那样)。

这是mailslots

上的内容

All IPC mechanisms

答案 5 :(得分:0)

以防它是有用的,如果这是进程间通信并不重要(如果你需要的功能可以形成一个使用或类似的DLL),你可以使用公共语言运行时来实现互操作性。 / p>

答案 6 :(得分:0)

我的建议是套接字或RPC。我不熟悉烟斗,但它似乎也是一种流行的选择。