2013-11-20 39 views
0

我有一個問題,主機A上的2個或更多的客戶端試圖從主機B接收完全相同的地址和端口號。UDP多個客戶端從相同的源接收

假設我們有主機A,並且有2個線程在其上運行。 A.thread_a將數據包發送到B端口xxxx。然後它會執行recvfrom(B,xxxx)。同時,A.thread_b使用相同的IP和端口號執行相同的recvfrom()調用。 B,在收到A.thread_a的請求後,通過sendto(A,yyyy)發送數據。誰會收到答覆,A.thread_a或A.thread_b?

+0

聯網版的未定義的行爲:( –

+0

@MartinJames在一個不應該做的第一個地方? – lang2

+0

的確如果你想多路複用來自多個線程的消息流,你應該把某種消息中的發起者-ID,並讓對等者在響應中返回它。 –

回答

0

如果你想多路複用來自多個線程的消息流,你應該在消息中加入某種形式的發起者ID,讓對等者在響應中返回它。 - 馬丁詹姆斯

相關問題