进程间通信:一个服务器和多个客户端

时间:2010-10-12 04:08:39

标签: c++ networking ipc

我运行了一个“服务器”进程,它将通过网络获取与服务器进程在同一台机器上运行的其他进程的数据。

我应该如何从本地服务器进程和本地客户端传输数据?

4 个答案:

答案 0 :(得分:2)

为了通过服务器进程检索网络数据,@ radman建议的Boost.Asio是一个不错的选择。

在服务器和本地客户端之间,Boost.Interprocess会更有效,因为这是进程间数据传输,不需要网络使用。

这些Boost库中的每一个都提供了一个围绕复杂的底层Win32 API的可立即运行的包装器,因此您可以通过使用库来获得更快的工作解决方案,而不是构建具有相同功能的专用代码。

答案 1 :(得分:1)

您应该查看Boost.Asio它是否适合您的问题并且是稳定的。

答案 2 :(得分:0)

标准TCP套接字适用于同一台计算机或不同计算机上的多个进程之间的进程间通信。它是标准的,几乎适用于所有平台和几乎所有编程语言。您应该能够轻松找到示例C ++代码。

要连接到同一台计算机上的套接字,请使用“localhost”作为其名称,或使用127.0.0.1作为其IP。

答案 3 :(得分:0)

我相信Windows已命名管道,其工作方式与其他答案中的建议类似(特别是@ Irish的TCP套接字建议)。有关详细信息,请参阅CreateNamedPipe()