与Win32服务进行进程间通信

时间:2011-08-02 21:38:36

标签: winapi service windows-services interprocess

ControlService API允许将控制代码发送到Win32服务。但是,如果我需要发送(和接收)多于控制代码,该怎么办?在用户模式GUI Win32应用程序和Win32服务之间建立通信以交换任意数据的最佳方法是什么? (假设我可以编译服务和​​应用程序)。该方法应该适用于Windows 2000到Windows 7,它应该适用于管理员和标准用户。谢谢!

2 个答案:

答案 0 :(得分:1)

听起来好像您打算让服务响应远程请求。为此,您可以使用命名管道,如前所述。但是,命名管道比TCP套接字要复杂一些。

如果您接受TCP套接字编程(socket()bind()listen()等),您将能够将该知识移植到其他平台。

答案 1 :(得分:0)

您几乎可以使用任何IPC机制。如果您的服务和应用程序是基于.net的,那么最常见的解决方案是使用WCF。对于本机代码服务和应用程序,一个非常常见的解决方案是命名管道。但最佳选择取决于您的具体使用需求。