【发布时间】:2020-11-21 20:59:49
【问题描述】:
这些函数在错误时返回 -1,在成功时返回输入长度。在什么情况下,对于 Linux 上的 UDP 套接字,它们可能返回小于长度且大于或等于 0 的值?
This StackOverflow question 类似,但在非 Linux RTOS 的上下文中。答案断言它不可能发生,并且操作系统供应商与他们相矛盾。 This StackOverflow question 类似,但接受的答案仅讨论收据。 Beej's guide 断言它可能会发生。 libuv 断言它不能。 POSIX 似乎并没有禁止它。
因此,我很好奇在什么情况下(如果有的话)会导致 Linux 上 UDP 套接字的“短写”返回值? POSIX 中是否有禁止它的互联网 RFC 或条款?例如,如果 UDP 数据报被分段(在多个 IP 数据包中发送),这种情况会发生吗?
【问题讨论】:
标签: linux sockets udp posix datagram