Windows IPC 模拟 Linux Unix 域和 Netlink 套接字
Posted
技术标签:
【中文标题】Windows IPC 模拟 Linux Unix 域和 Netlink 套接字【英文标题】:Windows IPC analog to Linux Unix domain and Netlink sockets 【发布时间】:2016-01-26 16:37:16 【问题描述】:在 Linux 上,用户级进程和服务之间的 IPC 相当常见的方法是,例如,套接字接口(Unix 域或网络链接)。
简单地说——Windows 的类似物是什么?用户态进程如何与服务通信?
设置阶段:假设我正在运行一个后台服务来监控网络上的设备。如果我想编写一个程序来利用该服务提供的服务,那么常见的“Windows 方式”是什么?
如果我在这里完全偏离基础,Windows 服务在 Windows 操作系统上扩展自身以使其他进程可能知道它正在主动侦听连接的常见方式是什么?
【问题讨论】:
使用 Winsock 2 的 Windows 上的 UDP 怎么样? @SeverinPappadeux,我相信这种方法会奏效。这是一种常见的设计方法吗?这就是我在这个问题中所寻找的——这种沟通的常用设计方法。 坦率地说,我会首先检查 Boost 的内容,例如 this 注意:为了与内核通信,Windows 的方式只是添加新的系统调用!没有必要使事情变得过于复杂。 (显然,不是每个人都能做到) 【参考方案1】:Windows 有命名管道,
“命名管道是一种命名的、单向或双工的通信管道 在管道服务器和一个或多个管道客户端之间。所有实例 命名管道共享相同的管道名称,但每个实例都有自己的 缓冲区和句柄,并为客户端/服务器提供单独的管道 沟通。实例的使用使多个管道客户端能够 同时使用相同的命名管道。”
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx
【讨论】:
以上是关于Windows IPC 模拟 Linux Unix 域和 Netlink 套接字的主要内容,如果未能解决你的问题,请参考以下文章
windows下 有没有 unix domain socket 类型的IPC机制