我可以打开一个套接字并将其传递给Linux中的另一个进程

在Linux中,我可以打开一个套接字并将套接字传递给另一个进程吗?
如果是,你能告诉我在哪里可以找到一个例子吗?

谢谢。

最佳答案
是的,可以,使用sendmsg()与SCM_RIGHTS从一个进程到另一个进程:

SCM_RIGHTS – Send or receive a set of
open file descriptors from another
process. The data portion contains an
integer array of the file descriptors.
The passed file descriptors behave as
though they have been created with
dup(2).

http://linux.die.net/man/7/unix

这不是典型的用法。更常见的是一个进程从它的父进程(在fork()之后)继承sockets。任何未关闭的文件句柄(包括套接字)将对子进程可用。所以子进程继承了父进程的套接字。

侦听连接的服务器进程称为守护程序。这通常在每个新连接上分叉,产生一个进程来处理每个新请求。典型的守护程序的示例如下:

http://www.steve.org.uk/Reference/Unix/faq_8.html#SEC88

向下滚动到void process()。

转载注明原文:我可以打开一个套接字并将其传递给Linux中的另一个进程 - 代码日志