Recvfrom()返回值

时间:2014-01-01 15:13:54

标签: udp mtu

我正在使用UDP数据包,我希望被清除一些点:
1 - 究竟是什么" recvfrom"退货?我的意思是,如果我发送一个大小为450字节的数据包+ 20字节的IP标头+ 8字节的UDP标头,recvfrom整体返回478字节或者可能有类似的东西:
它收到10个字节,300个字节,100个字节,68个字节? 2 - " recvfrom"的返回值与数据包碎片有关?

注意:
*我正在谈论" recvfrom"成功了 *我选择450字节以确保Im小于最小MTU

1 个答案:

答案 0 :(得分:1)

  1. 对于UDP套接字,recvfrom()读取UDP数据。所以它返回450,前提是你提供一个至少450字节大的缓冲区。 如果您提供的缓冲区小于接收的数据,则数据将被截断,并且recvfrom()将读取与您提供的缓冲区相同的数据。

  2. IP层将是分割UDP数据包的部分,在接收主机上它将重组它。这对发送/接收应用程序是透明的。