在Linux中,我是否可以打开套接字并将套接字传递给另一个进程? 如果是的话,你能告诉我在哪里可以找到一个例子吗?
谢谢。
答案 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()
。