我在接收 UDP 数据包时遇到问题。我的环境在 ARMv7 上运行 Android 2.1。使用 C 套接字编程,我使用recvmsg从内核接收数据包,但偶尔会出现一些丢包事件。发送方和接收方在同一个局域网中,因此毫无疑问数据包不应该丢失。我通过Wireshark证明了这一点。
但是,在我将recvmsg 替换为recvfrom接收数据包后,不再发生丢包事件。
我确定recvmsg的返回值总是大于 0,这意味着不会发生错误。
是否有可能仅在使用recvmsg时才会在内核空间中丢弃某些数据包?