使用C ++在同一系统上运行的2个服务之间的通信

时间:2018-06-05 08:18:53

标签: c++ c++11 visual-c++ service ipc

在C ++中,我有两个在系统上运行的服务(比如说windows服务)。显然两者都有相应的EXE A.EXe& B.EXE。

如果我想查询&在这两个窗口服务之间接收一些数据可以通过传递来自1个服务和1的结构的指针来完成它作为函数调用。让其他服务使用传递的指针填充结构。

A& A的公共头文件B:

struct Abc
    {
       int a;
    }

现在说服务A通过调用服务B.EXE中的函数来发送带有指针的结构对象或通过引用传递。这个函数是否可以调用2个服务和数据可以在A& A之间传输B这样吗?

或者我需要像套接字这样的IPC机制。

  

什么是实现2种服务之间数据传输的最佳方式   在同一系统上运行

1 个答案:

答案 0 :(得分:1)

IPC代表“进程间通信”。您有两个服务(每个服务都在自己的进程中运行),并且您希望在它们之间进行通信。您绝对需要IPC机制。

您的选择是:

  • 套接字(在顶部分层66.0.3359.158将是一个很好的主意)
  • 共享内存映射和信令事件(不要忘记使用互斥锁或类似事件,并且不要忘记建立锁定层次结构,这样就不会出现死锁)。这仅限于一台机器,但这可能是可以接受的。
  • DCOM(仅适用于Windows,但看起来你只限于Windows)。
  • 其他一些IPC包。

我个人的偏好是插座,但其中任何一个都是合适的。