2015-03-31 45 views
0

在我的客戶端應用程序中,我使用epoll和udp套接字從服務器接收數據包。客戶端應用程序有兩個進程,p1和p2。多進程環境中的epoll

使用此函數獲取fd的sock = socket(AF_INET,SOCK_DGRAM,0);

在方法P1中,插座()函數返回FD的從4 P1開始已經的fd的4,5,6,7,8等

在過程P2,插座()函數返回FD的從4開始。 P2有fd的4,5,6

現在在這兩個進程中有相同的FD但端口號是不同的。

進程P1和P2都使用epoll讀取/寫入。 在這種情況下,任何獲取數據包到P2的機會,實際上是爲了P1嗎?

回答

0

否。每個進程都有自己的文件(套接字)描述符集。 FD的價值可以與其他流程相同。那裏沒有問題。所以沒有辦法打算讓P1到達P2。

您可以回想一下,與stdin,stdout和stderr相對應的文件描述符0,1和2對於每個進程都是開放的。它們並不是獨一無二的。