【发布时间】:2011-01-01 03:24:40
【问题描述】:
在 Linux 中,我可以打开一个套接字并将该套接字传递给另一个进程吗? 如果是,您能告诉我在哪里可以找到示例吗?
谢谢。
【问题讨论】:
-
@Gilles'SO-stopbeingevil' 您正在链接到一个在此之后按时间顺序询问的问题,它怎么可能是重复的?
在 Linux 中,我可以打开一个套接字并将该套接字传递给另一个进程吗? 如果是,您能告诉我在哪里可以找到示例吗?
谢谢。
【问题讨论】:
是的,您可以使用 sendmsg() 和 SCM_RIGHTS 从一个进程到另一个进程:
SCM_RIGHTS- 发送或接收一组 从另一个打开文件描述符 过程。数据部分包含一个 文件描述符的整数数组。 传递的文件描述符表现为 尽管它们是用dup(2).
http://linux.die.net/man/7/unix
但这不是典型的用法。更常见的是当进程从其父进程继承套接字时(在fork() 之后)。子进程可以使用任何未关闭的文件句柄(包括套接字)。所以子进程继承父进程的套接字。
侦听连接的服务器进程称为守护进程。这通常会在每个新连接上分叉,产生一个处理每个新请求的进程。典型守护进程的示例如下:
http://www.steve.org.uk/Reference/Unix/faq_8.html#SEC88
向下滚动到无效process()。
【讨论】: