3

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

更新:

我在下面添加了我的评论。

4

2 回答 2

3

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

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

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

于 2013-08-23T12:37:22.687 回答
2

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

于 2013-08-28T09:47:47.470 回答