2009-03-02 20 views
4

有没有在Windows中的进程(不是相同的地址空间)之间传递套接字的方法?
在进程之间传递的套接字

我觉得这个信息Shared Sockets,所以认为这是可能的。

的WSADuplicateSocket功能被引入,实现跨流程插槽共享” ...

更多信息:Apache的源代码(httpd-2.2.11-win32-src.zip)有用于带注释的api WSADuplicateSocket。

[编辑] 最近我发现这个问题很好的例子。
How duplication is done in the unmanaged world - Socket Duplication - Part 1
Is it possible to transfer sockets from unmanaged processes? - Socket Duplication - Part 2

+0

您可以使用命名管道重定向来自多个客户端进程的I/O。不是共享套接字,但非常简单。 http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx – Chris 2009-03-02 18:32:11

回答

2

WSADuplicateSocket的注释部分。它实际上表示您可以使用您最喜欢的进程间通信方案将WSAPROTOCOL_INFO结构(它只是数据!)发送到目标。

有很多IPC方案。我可能会使用与Boost::interprocess共享内存。但是如果目标有一个窗口+消息循环,则可以使用SendMessage。或者剪贴板API,就此而言(虽然有点奇怪)。该机制是您的选择。

相关问题