C++ 具有多个独立组的局部过程的IPC方法
我是IPC新手,我正在尝试实现一种安全的IPC方法(与加密无关)C++ 具有多个独立组的局部过程的IPC方法,c++,ipc,C++,Ipc,我是IPC新手,我正在尝试实现一种安全的IPC方法(与加密无关) 我使用Visual Studio 2010开发了一个C++系统(但它将移植到其他平台Linux /MaOS/FreeBSD),这个系统有一个过程“A”,需要在同一台计算机上接收和发送XML到其他进程“B”,但是在14个进程中存在“B”(B1,B2,…,B14)。需要向进程“a”发送/接收XML 流程“A”将充当每个流程“B”之间的代理/桥梁,流程“B”必须发送的所有数据/XML将发送到流程“A”,而只有流程“A”将向流程“B”发送
我使用Visual Studio 2010开发了一个C++系统(但它将移植到其他平台Linux /MaOS/FreeBSD),这个系统有一个过程“A”,需要在同一台计算机上接收和发送XML到其他进程“B”,但是在14个进程中存在“B”(B1,B2,…,B14)。需要向进程“a”发送/接收XML
流程“A”将充当每个流程“B”之间的代理/桥梁,流程“B”必须发送的所有数据/XML将发送到流程“A”,而只有流程“A”将向流程“B”发送数据/XML 我正在寻找一种IPC方法来在进程“A”和“B1…B14”之间交换数据。共享内存听起来不错,但任何进程都可以写入/读取地址,因此这是不安全的(我知道可以设置访问权限) 我试图找到一种IPC方法:有人能推荐一种合适的IPC技术,或者内置在操作系统中,或者需要第三方库吗?简短回答:
- Win32的Windows管道李>
- Linux(及其系列)的匿名本地套接字
- 内存映射文件
- 命名管道
- 网络套接字(主要是IP)
- 共享内存
- 管道
- 本地套接字(包括匿名套接字)
进程A是否可以生成进程B?这可能允许共享打开的FD。另外,为什么不“仅仅”使用带有简单共享秘密身份验证的Unix套接字呢?这同样适用于更通用的MQ。“跨平台(Linux/MacOS/FreeBSD)”——所以您不需要Windows兼容性?在这种情况下,POSIX为您提供了非常友好的东西。