繁体   English   中英

在Linux中的进程之间传输套接字

[英]transfer socket between processes in Linux

如何在Linux下的进程之间传输套接字的所有权? Windows有一个Socket.DuplicateAndClose函数,但有没有办法在Linux上执行此操作?

如果它有所作为,我想将所有权从父进程转移到子进程,并且在我获得套接字时子进程还没有启动,所以我对涉及fork有趣解决方案持开放forkexec系列的功能。

子进程将继承文件描述符。 因此,除了在分叉子项后关闭父项中的套接字之外,您无需执行任何操作。

如果在子exec另一个可执行文件,则可能需要使用特定参数通知文件描述符值。

鉴于您希望在创建套接字后生成子进程,因此没有传输。 子进程继承父描述符。 因此,父母只需要关闭套接字以将所有权传递给孩子。

但是,要将新创建的套接字实际传递给现有进程,需要使用辅助数据接口打包套接字,并使用sendmsgrecvmsg进行数据传输。 cmsg手册页包含有关如何创建要执行传输的消息的示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM