美好的一天,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