首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UDP套接字和MSG_PEEK

UDP套接字和MSG_PEEK
EN

Stack Overflow用户
提问于 2020-09-12 10:01:38
回答 1查看 770关注 0票数 2

当我们使用recvfrom()从UDP套接字读取数据包时,不能部分读取它。因为如果我们首先读取UDP数据包的一小部分(通过传递一个小缓冲区),就会删除下面提到的数据包提醒:

所有接收操作只返回一个数据包。当数据包小于所传递的缓冲区时,只返回那么多数据;当数据包较大时,数据包为截断,并设置MSG_TRUNC标志。

但我想知道,如果我们只使用MSG_PEEK标志检查数据包,是否会发生同样的情况。如果我只是浏览UDP消息,会丢弃数据包提醒吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 14:18:21

如果我只看一看UDP消息,

会提醒丢包吗?

不会删除任何内容,因为设置了MSG_PEEK标志后,套接字的传入数据缓冲区的状态不会被修改;整个数据包将保留在套接字的缓冲区中。

当然,只有数据包的第一部分数据将被复制到您太小的目的地-数据缓冲区中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63859134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档