【发布时间】:2018-06-05 08:18:52
【问题描述】:
在 C++ 中,我有 2 个在系统上运行的服务(比如 Windows 服务)。显然两者都有对应的 EXE A.EXe & B.EXE。
如果我想在这 2 个 Windows 服务之间查询和接收一些数据,它可以通过从 1 个服务传递一个结构的指针作为函数调用来完成,并让另一个服务使用传递的指针填充该结构。
A 和 B 的通用头文件:
struct Abc
{
int a;
}
现在说服务 A 通过调用服务 B.EXE 中的函数来发送此结构对象及其指针或通过引用传递。此函数调用是否可以跨 2 个服务工作?数据可以通过这种方式在 A 和 B 之间传输吗?
或者我需要像套接字这样的 IPC 机制吗?
实现 2 个服务之间的数据传输的最佳方式是什么 在同一系统上运行
【问题讨论】:
-
看一下Boost asio聊天服务器的例子,它支持通过socket进行双工通信。
-
如果您希望此通信作为函数调用进行,您可以尝试远程过程调用。当您使用 Windows 和 VS 时,请查看Introduction to RPC - Part 1 和第 2 部分以获得很好的介绍。
标签: c++ c++11 visual-c++ service ipc