在Linux中,是否可以打开套接字并将该套接字传递给另一个进程?如果是,请您告诉我在哪里可以找到示例?
谢谢。
是的,可以,sendmsg()与SCM_RIGHTS一起使用,从一个过程到另一个过程:
sendmsg()
SCM_RIGHTS-从另一个进程发送或接收一组打开的文件描述符。数据部分包含文件描述符的整数数组。传递的文件描述符的行为就像它们是使用创建的 dup(2)。
SCM_RIGHTS
dup(2)
http://linux.die.net/man/7/unix
那不是典型的用法。更常见的情况是进程从其父级继承套接字(在之后fork())。未关闭的所有文件句柄(包括套接字)将对子进程可用。因此,子进程继承了父进程的套接字。
fork()
侦听连接的服务器进程称为守护程序。通常,这会分叉到每个新连接上,从而产生一个进程来处理每个新请求。典型守护程序的示例在这里:
http://www.steve.org.uk/Reference/Unix/faq_8.html#SEC88
向下滚动到void process()。
process()