【发布时间】:2013-10-28 16:55:29
【问题描述】:
因此,在 TCP 流的情况下,需要跟踪每个 recv 调用读取了多少消息。然后可以将部分读取拼凑在一起,最终可以正常接收消息。
但是对于 UDP 消息,应该如何处理部分读取(假设所有 UDP 消息都小到可以避免碎片)?由于部分消息的剩余数据似乎被丢弃,是否只是确保recvfrom 返回与发送的缓冲区相同的大小?如果存在差异,则意味着它是部分且有缺陷的消息,应该跳过它。
所以从概念上讲,TCP 示例需要一个循环,而 UDP 示例只需要一个 if 语句。
这是正确的吗?
【问题讨论】: