Sockets 在分叉场景中,套接字包去了哪里?

Sockets 在分叉场景中,套接字包去了哪里?,sockets,fork,file-descriptor,Sockets,Fork,File Descriptor,假设我有一个进程a和进程B,其中a充当TCP客户端,B充当TCP服务器,a连接到B,a中套接字的文件描述符是fd1(a),B中的文件描述符是fd2,此时,进程a分叉了一个名为C的子进程,C也有fd1(C),它指向与fd1(a)相同的文件表,现在B向fd2写入一些内容,哪个进程,A或C,将获得消息?该消息是否会传递给fd1(A)?还是fd1(C)?还是随机的?谢谢。无论哪个进程先读取消息,消息都将转到该进程。如果A在C忙于做其他事情时执行read()或recv(),A将获取数据,反之亦然。如果A和

假设我有一个进程a和进程B,其中a充当TCP客户端,B充当TCP服务器,a连接到B,a中套接字的文件描述符是fd1(a),B中的文件描述符是fd2,此时,进程a分叉了一个名为C的子进程,C也有fd1(C),它指向与fd1(a)相同的文件表,现在B向fd2写入一些内容,哪个进程,A或C,将获得消息?该消息是否会传递给fd1(A)?还是fd1(C)?还是随机的?谢谢。

无论哪个进程先读取消息,消息都将转到该进程。如果A在C忙于做其他事情时执行
read()
recv()
,A将获取数据,反之亦然。如果A和C同时执行
read()
recv()
,则结果未定义