在Linux中,我是否可以打开一个套接字并将其传递给另一个进程? 如果是,您能告诉我在哪里可以找到一个示例吗?
谢谢。
在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
向下滚动到void process()
处。