在我的客户端应用程序中,我使用epoll和udp套接字从服务器接收数据包。客户端应用程序有两个进程,p1和p2。
使用此函数获取fd的sock = socket(AF_INET,SOCK_DGRAM,0);
在进程P1中,socket()函数从4开始返回fd' s。 P1有fd' 4,5,6,7,8等
在进程P2中,socket()函数从4开始返回fd' s。 P2有fd< 4,5,6
现在这两个过程都有相同的fd,但端口号不同。
进程P1和P2都使用epoll进行读/写。 在这种情况下,是否有机会将数据包发送到P2,这实际上是针对P1发生的?
答案 0 :(得分:0)
没有。每个进程都有自己的文件(套接字)描述符集。 FD的值可以与其他过程的值相同。没问题。因此,没有任何数据包可以让P1达到P2。
您可以回想一下,对于每个进程,对应于stdin,stdout和stderr的文件描述符0,1和2都是打开的。它们并不是独一无二的。