我可以假设recv会读取小于最小以太网帧大小的一次性数据吗?

时间:2016-03-16 15:36:05

标签: sockets networking recv

如上所述here,最小以太网数据包大小为64字节:

  

以太网数据包(标头+用户数据+ FCS)小于最小64字节的以太网数据包填充为64字节

我可以假设recv将读取小于最小以太网帧大小的一次性数据吗?假设连接的另一端一次发送10个字节的数据,我可以在结束时调用recv一次并假设所有10个字节都被读取了吗?

1 个答案:

答案 0 :(得分:1)

在TCP套接字上使用recv时,您不能假设任何。它可以将从-1(表示错误)的任何数字返回到0(表示关闭的套接字)到N,其中N等于提供给recv的缓冲区大小。

关于recv读取的字节数的假设是持续痛苦和错误的来源。