进程间的套接字传递

5

在Windows中,是否有一种方法可以在进程之间(不同的地址空间)传递套接字?

我发现了这些信息共享套接字,因此相信这是可能的。

"引入了WSADuplicateSocket函数以实现跨进程共享套接字"...

更多信息:在Apache的源代码(httpd-2.2.11-win32-src.zip)中有关于使用WSADuplicateSocket API的注释。

[编辑] 最近我发现了一个关于这个问题的好样例。
如何在非托管环境下进行复制——Socket Duplication - Part 1
是否可能从非托管进程中传输套接字?——Socket Duplication - Part 2


你可以使用命名管道来重定向多个客户端进程的输入/输出。这不是共享套接字,但相当简单。http://msdn.microsoft.com/en-us/library/aa365590(VS.85).aspx - Chris
2个回答

4
请参见WSADuplicateSocket的备注部分。它有效地表示,您可以使用您喜欢的进程间通信方案将WSAPROTOCOL_INFO结构(只是数据!)发送到目标。有许多IPC方案。我可能会使用Boost::interprocess的共享内存。但如果目标具有窗口+消息循环,则可以使用SendMessage。或者剪贴板API(尽管有些奇怪)。机制由您选择。

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接