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

时间:2010-01-04 05:16:27

标签: linux sockets

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

谢谢。

1 个答案:

答案 0 :(得分:58)

是的,您可以使用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()