请教,关于winsock UDP编程。

null2002 2005-03-18 11:30:35
请问用一个循环中用recvfrom接收udp数据报时,如果正在处理接收到的数据的时候数据报到达而没有recvfrom,是否此数据报会丢失?
比如:
CreateThread(.....);

//下面这个函数传入CreateThread
void listenthread(void)
{
while(1)
{
recvfrom(...);
//下面是处理接收的语句
...
...//此时数据报到达,还能接收得到吗?还是会缓冲供下次recvfrom时接收?
}
}
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharkhuang 2005-03-18
  • 打赏
  • 举报
回复
会缓存一定数量的!太大不行
CMyMfc 2005-03-18
  • 打赏
  • 举报
回复
下次recvfrom会收到
丢失包是在网络传输途中丢失的
而不是因为这个
可以实现超时重传确认机制, 发现丢包, 对方会重发
YFY 2005-03-18
  • 打赏
  • 举报
回复
读出来的应该不会丢,局域网也比较可靠。

不过在网络状况不好的地方发送的数据完不完整就不好说了。

还得自己加上层的校验数据是否完整。
BluntBlade 2005-03-18
  • 打赏
  • 举报
回复
如果系统数据缓冲区中的数据已经被读出,则数据报不会丢失。
反之,数据报被丢弃。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧