美好的一天,
我正在用VC++开发一个应用程序,它在Windows XP上使用UDP协议和winsock进行通信.以前我已经能够假设该工具接收的所有数据包都来自单个目标.但是我现在正在接收广播.监听线程的开销很小,应该将所有时间都花在下面的行上:
rv = recvfrom(socket,
p_buffer_p,
p_size,
0,
(sockaddr*)&clientService_in, //This is set to do a broadcast recv
&SenderAddrSize);
Run Code Online (Sandbox Code Playgroud)
我的问题是我是否可以假设我从recvfrom返回的缓冲区来自单个目标.也就是说,发送应用程序中的1个调用发送应用程序等于从接收应用程序中的recvfrom返回1?或者多个发件人的多个发送可以合并为1?
我假设来自目标的单个发送不能从recvfrom分成多个返回.我一直都是这样,从来没有遇到任何问题.
还有一件事,它是一个SOCK_DGRAM类型的套接字.