UDP パケットの受信に問題があります。私の環境では、ARMv7 で Android 2.1 を実行しています。C ソケット プログラミングでは、recvmsgを使用してカーネルからパケットを受信しますが、パケット ロス イベントが発生することがあります。送信者と受信者は同じ LAN 内にあるため、パケットが失われないことは間違いありません。そして、私はWiresharkでそれを証明しました。
しかし、パケットを受信するためにrecvmsg をrecvfromに置き換えた後、パケット損失イベントは発生しなくなりました。
確かにrecvmsgの戻り値は常に 0 より大きいので、エラーは発生しません。
recvmsgを使用している場合にのみ、一部のパケットがカーネル空間でドロップされる可能性はありますか?