accept()返回相同的套接字描述符号

时间:2013-12-06 10:56:11

标签: c linux sockets process fork

作为新客户端套接字accept()的参数, 侦听器套接字位于共享内存区域,并由所有分叉服务器进程共享。

但是每个服务器进程 accept()returns the same socket descriptor after accept()`被所有不同的分叉进程调用。

fork()是否也为套接字描述符和每个分叉进程创建了单独的区域 分别管理该区域? 这就是他们产生重复套接字描述符的原因吗?

我打算使用select()来检测所有套接字描述符的更改, 但因为它们产生了所有相同的描述符,所以我无法解决这个问题。

1 个答案:

答案 0 :(得分:4)

是的,套接字描述符(以及文件描述符)值是在每个进程的基础上管理的。