当我们使用
recvfrom()
从UDP套接字读取数据包时,无法部分读取。因为如果我们首先只读取UDP数据包的一小部分(通过传递一个小缓冲区),则剩余的数据包将会被丢弃,如此处所述:
但我想知道,如果我们只使用所有接收操作仅返回一个数据包。 当数据包小于传递的缓冲区时,仅返回那么多数据; 当数据包大于缓冲区时,则截断该数据包,并设置MSG_TRUNC标志。
MSG_PEEK
标志来检查数据包,是否会发生同样的情况?如果我只是窥视UDP消息,数据包的剩余部分会被丢弃吗?