在为Android编写简单的UDP广播应用时,我遇到了一个奇怪的问题。
基本上我的应用程序想要向本地网络上的设备广播数据流。每个UDP数据包都有一个按顺序递增的数字,因此我知道数据包何时丢失。
当我进行测试时,我注意到大约80%的数据包丢失了。现在我知道UDP是有损的,但这在局域网上是疯了。
因此,我在JRE7上编码了相同的发件人并启动了它。同样的代码几乎没有损失百分比。
当我在Android上切换到单播(只是更改目标IP地址,无代码更改)时,我的丢失率为0%。
使用Unicast Im有点担心应用程序的可伸缩性。
有没有人知道Android中是否存在某些已知错误,导致发送多播数据报时出现问题?
我相当肯定这不是接收器的错误,因为我使用相同的接收器进行单播和广播接收。
感谢您的想法。
答案 0 :(得分:0)
同样发生在我身上......不知道为什么...... 尝试较小的包 如果你需要广播,客户端上的反向ack和服务器上的ack监听器。如果你找到一个更好的解决方案,我在另一个帖子上问几乎相同...我已经管理了丢包ack代码,但因此我的表现很差。 注意:由于声誉,我无法添加评论