我在接收UDP數據包時遇到了問題。我的環境在ARMv7上運行Android 2.1。使用C socket編程,我使用recvmsg從內核接收數據包,但偶爾會發生一些數據包丟失事件。發送者和接收者在同一個局域網中,所以毫無疑問,數據包不應該丟失。我通過Wireshark進行了證明。C socket recvmsg,數據包丟失
然而,當我更換recvmsg與recvfrom的接收數據包,並不再出現丟包事件。
我敢肯定recvmsg的返回值始終是大於0,意味着沒有錯誤發生。
是否有可能某些數據包僅在使用時丟失在內核空間中recvmsg?
是否所有數據包都從同一個源發送?也許多個來源發送數據包到你的一個套接字? – zmbq 2012-07-16 10:49:35
recvfrom有什麼問題? – mathk 2012-07-16 12:29:43
是的,所有數據包都從同一個源發送。 – Corey 2012-07-19 00:48:38