使用C++在同一系统上运行的 2 个服务之间进行通信
Communication between 2 Services running on same system using C++
在C++中,我有2个服务(比如Windows服务(在系统上运行。显然,两者都有其相应的EXEsA.EXe和B.EXE。
如果我想在这 2 个 Windows 服务之间查询和接收一些数据,可以通过从 1 个服务传递一个结构的指针来完成作为函数调用,并让另一个服务使用传递的指针填充结构。
A 和 B 的通用头文件:
struct Abc
{
int a;
}
现在假设服务 A 通过调用服务 B 中的函数发送此结构对象及其指针或通过引用传递.EXE。此函数调用是否适用于 2 个服务,数据是否可以以这种方式在 A 和 B 之间传输?
还是我需要像套接字这样的 IPC 机制。
实现 2 个服务之间数据传输的最佳方法是什么 在同一系统上运行
IPC代表"进程间通信"。 您有两个服务(每个服务都在自己的进程中运行(,并且您希望在它们之间进行通信。 您绝对需要一个IPC机制。
您的选择是:
- 插座(在顶部分层
boos::asio
将是一个好主意( - 共享内存映射和信令事件(不要忘记使用互斥锁或类似内容,并且不要忘记建立锁层次结构,以免出现死锁(。 这将仅限于一台计算机,但这可能是可以接受的。
- DCOM(仅限Windows,但看起来您仅限于Windows(。
- 其他一些IPC软件包。
我个人更喜欢插座,但其中任何一个都是合适的。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 在cuda线程之间共享大量常量数据
- 在c代码之间共享数据的最佳方式
- Mix_Init和Mix_OpenAudio SDL之间的区别是什么
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 大小相等但成员数量不同的结构之间的性能差异
- 类与私有变量的其他类之间的线程安全性
- 如何在cpp文件之间切换窗口?在Qt中
- 线程之间的布尔停止信号
- 使用C++在同一系统上运行的 2 个服务之间进行通信
- 使用 NamedPipe 访问 Windows 服务之间的安全性
- 服务和用户模式进程之间的共享全局事件不起作用
- JScript 和 Windows 服务之间的通信方式
- WMI 和 Windows 服务之间的通信
- 在 Windows 服务和 Win32 应用程序C++之间使用 IPC
- 凭证提供者和系统服务之间的IPC
- 操作系统服务与 C++ 之间的通信