Android udp包丢失

时间:2013-08-23 10:53:37

标签: android udp

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

更新:

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

2 个答案:

答案 0 :(得分:4)

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

数据包丢失是UDP协议的文档功能。

UDP协议不保证将包传递给收件人。 http://en.wikipedia.org/wiki/User_Datagram_Protocol

答案 1 :(得分:1)

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