【问题标题】:Android udp packets lossAndroid udp 丢包
【发布时间】:2013-08-26 09:38:10
【问题描述】:

我在 Sony Xperia Z 平板电脑上接收 udp 数据包时遇到了奇怪的问题。我的应用程序没有收到很多 udp 数据包。因此,我已将平板电脑植根以安装鲨鱼应用程序,并在植根设备后使用鲨鱼应用程序捕获网络流量。当我分析报告时,设备已收到所有数据包,但我的应用程序没有收到很多数据包。如果应用程序没有收到任何数据包,问题可能是阻止广播数据包的数据包过滤器。在这里,我的应用程序接收到的数据包很少,但错过了设备接收到的数据包。我没有在 samsung tab 2 和 motorola xoom tablet 上观察到这个问题,它接收所有的数据包。听起来好像没有代码问题。有没有人遇到过类似的问题?如果您有任何我可以尝试的建议或意见,请告诉我。

更新:

我在下面添加了我的 cmets。

【问题讨论】:

  • 我的应用程序必须接收大小为 64 字节的 udp 数据包。问题不在于它丢失了所有数据包。它丢失了一些数据包,但设备正在接收我在使用鲨鱼应用程序捕获设备的网络流量时发现的数据包。看起来 Android 操作系统没有将这些数据包从 WiFi 网络缓冲区发送到我的应用程序。

标签: android udp


【解决方案1】:

I'd tell you a UDP joke, but you might not get it.

丢包是 UDP 协议的一个记录特性。

UDP 协议不保证包裹会送达收件人。 http://en.wikipedia.org/wiki/User_Datagram_Protocol

【讨论】:

    【解决方案2】:

    我找到了为什么我的应用错过了设备收到的一些数据包。我已将数据报套接字接收器缓冲区大小设置为较小的值。我删除了此代码设置缓冲区大小,然后它开始接收所有数据包。默认情况下,android 将缓冲区大小设置为 163840B,但我将大小设置为 64 字节。它在 android 设置的默认缓冲区大小下工作正常。

    【讨论】:

    • 我在 1 秒的间隙内收到两条消息!!不幸的是,有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2013-11-21
    • 2018-03-18
    • 2013-11-14
    • 2011-08-08
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多