为什么命名管道更适合本地Windows机器上的IPC(进程间通信)?或者UDP有时可能更好?
答案 0 :(得分:5)
甚至在本地主机上的UDP数据包也可能丢失。此外,由于UDP是基于数据报的,并且没有保证传送,因此很难传输较大的数据块。最后,localhost上的UDP有时会被浏览器阻止。通常,UDP通常甚至不用于单机IPC。
在Windows上,我建议使用内存映射文件+同步原语作为最快且可能最简单的方法。命名管道通常在你管理工作时运行良好,但我在这里看到很多关于如何使命名管道工作的问题(我还没有看到关于MMF的单一投诉)。
我们有一个产品MsgConnect,它提供基于套接字,UDP和MMF的传输,适用于本地或跨网络的IPC,因此我对此主题有实际经验。命名管道被认为是支持,但后来这个想法被放弃了,有利于其他机制。