我需要使用本地C ++(.NET不适用)在Win32中为进程(在机器范围内)实现进程间通信系统。 有关更多详细信息,我正在考虑使用二进制格式消息的进程之间的消息路由系统。 消息发送/接收必须是asynchronous的。
TCP套接字可能是其中的一个select。 但是,我只想知道高性能是否有更好的select。 (我可以忽略安全问题。)
我不是要求详细的代码,而是要求你的见解。
如果您有一些时间空闲,如果您喜欢风险和实验,则可以使用未公开的Windows功能: 本地过程调用 。 它永远在那里,它可能是最快的,因为它是所有其他的基础。
你也可以看看命名管道: 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,但是坦率地说,我认为这两种方法之间的性能差异,或者至少我没有注意到如此大的差异来说“避免这个…”或者“更喜欢这个其他的…“。 也许从你更有信心的技术开始,会给你一个好的工作效果,更多的空闲时间;)
我是内存映射文件的粉丝。 用读写器锁包装以提供访问限制。