C++应用程序:是否可以将接受的TCP连接从一个进程传递到另一个进程?

Rel*_*lla 6 c++ connection tcp interprocess

所以我想知道 - 是否可以将接受的TCP连接(在Windows或Unix上,如OS)从一个进程传递到另一个进程?这里的重点是传递连接 - 而不是代理应用程序的数据.

Fre*_*Foo 8

在Unix中,TCP连接表示为套接字文件描述符.当你fork的过程中,文件描述符由子进程继承,包括TCP套接字.(虽然exec如果有FD_CLOEXEC旗帜,他们可能会被关闭fcntl.)

也可以使用本地(Unix)域套接字在不相关的进程之间传输文件描述符; 看到这个问题.

我不确定Windows.


Eri*_*rik 5

在Windows上,使用WSADuplicateSocket,将填充传递WSAPROTOCOL_INFO给其他进程,用于WSPSocket重新创建套接字.

在类似unix的操作系统上,可以使用sendmsg()系统调用.libancillary为您提取此摘要.