美好的一天,UDP recv/recvfrom多個發件人
我正在開發一個在VC++中使用UDP協議與Windows XP上的winsock進行通信的應用程序。以前我可以假定工具接收的所有數據包來自單個目標。不過,我現在正在做廣播接收。監聽線程具有最小的開銷,應該把它所有的時間對下面一行:
rv = recvfrom(socket,
p_buffer_p,
p_size,
0,
(sockaddr*)&clientService_in, //This is set to do a broadcast recv
&SenderAddrSize);
我的問題是我是否可以認爲,我從recvfrom的一個回報得到一個緩衝是從一個單一的目標。也就是說,1個調用發送的應用程序發送的應用程序等於從recvfrom返回接收應用程序?或者多個發送者的多個發送可以一起發送到1?
我假設來自目標的單個發送無法從recvfrom分裂爲多個返回。無論如何,我一直認爲這個問題並沒有問題。
還有一件事,它是一個SOCK_DGRAM類型的套接字。
好的,謝謝。我讀過其他地方發佈的一些東西,似乎表明它們可能會分裂並變得鬆軟,但我想這是針對不同的協議。我不熟悉winsock中連接之間的差異。 – Ian 2012-01-05 20:08:13
@Ian該協議可能是基於流的協議(TCP/SCTP) – INS 2012-01-05 20:10:53