小编典典

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

linux

在Linux中,是否可以打开套接字并将该套接字传递给另一个进程?如果是,请您告诉我在哪里可以找到示例?

谢谢。


阅读 320

收藏
2020-06-02

共1个答案

小编典典

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

2020-06-02