c ++ IPC通过Windows上的streambuf

我有一个消息对象序列化为二进制数据stream(它可以是任何std :: streambuf),我想将其转移到另一个进程。 关键是,服务器应用程序必须处理许多客户端,连接必须是asynchronous的(由于多个客户端),并且双向(可以通过两个分离的连接实现)。 消息具有可变长度,应该排队。 我应该select什么样的IPC方法? 有没有简单的方法来通过应用程序传输stream缓冲区? 速度并不重要,但不要过多地阻挡应用程序。 任何事情都将在Windows本地完成(我的目标是XP和更新),不需要networking支持。

我还需要听取传入连接的可能性。 服务器应该自动检测新的连接,做一些握手和接受,如果它是兼容的。 我知道我需要自己写很多东西。 无论如何,这一定是可以实现的,但当然更简单更好。

您可以在Windows中使用命名管道。 请参阅MSDN参考: http : //msdn.microsoft.com/en-us/library/aa365150%28v=vs.85%29.aspx

您也可以将其设置为全双工(双向)和异步。 如果您熟悉Windows上的File I / O API,那么它应该很简单易用。