【问题标题】:What's the best IPC method for intra-machine process communication in Win32? [closed]Win32中机器内进程通信的最佳IPC方法是什么? [关闭]
【发布时间】:2011-07-28 23:28:18
【问题描述】:

我需要使用本机 C++(.NET 不适用)在 Win32 中实现进程间通信系统(在机器范围内)。有关更多详细信息,我正在考虑使用二进制格式消息的进程之间的消息路由系统。消息发送/接收必须是异步的。

TCP 套接字可能是其中一种选择。但是,我只想知道是否有更好的高性能选择。 (我可以忽略安全问题。)

我要求的不是详细代码,而是您的见解。

【问题讨论】:

标签: c++ c windows ipc


【解决方案1】:

如果您有空闲时间,并且喜欢冒险和实验,您可以使用未记录的 Windows 功能:Local Procedure Call。它永远存在,而且可能是最快的,因为它是所有其他人的基础。

【讨论】:

  • 这很有趣:我还是第一次听说
  • 好吧,根据那个维基百科链接,本地过程调用只允许在同一台机器内调用。
  • @Amigable - 是的,因为问题是关于“机内”IPC
  • 糟糕,我对英语的理解有所提高,抱歉。
  • 经过一番研究,我发现这正是我所需要的。谢谢。
【解决方案2】:

你也应该看看命名管道:http://msdn.microsoft.com/en-us/library/aa365590%28v=vs.85%29.aspx。我也知道 IPC 的 MemoryMappedFiles:http://msdn.microsoft.com/en-us/library/ms810613.aspx,但我个人从未尝试过。我在单机 IPC 策略上同时使用了 NamedPipes 和 Socket,但坦率地说,我从来没有测量过这两种方法之间的性能差异,或者至少我没有注意到说“避免这个......”或“更喜欢这个其他的”有这么大的差异……”。也许从你更自信的技术入手会给你一个好的工作结果,还有更多的空闲时间;)

【讨论】:

【解决方案3】:

我是内存映射文件的粉丝。 用读写器锁包裹以提供访问限制。

【讨论】:

    猜你喜欢
    • 2012-05-19
    • 1970-01-01
    • 2018-05-31
    • 2010-09-10
    • 2010-09-30
    • 2012-02-11
    • 2010-12-20
    相关资源
    最近更新 更多