gpt4 book ai didi

Android 多播套接字停止监听

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:19 24 4
gpt4 key购买 nike

我在 Android 上有一项服务可以监听并响应通过多播接收到的数据包。

这在大多数情况下都有效,但不幸的是,我发现它会时不时地停止接收数据包。线程在调用 MulticastSocket.receive() 时保持阻塞状态,但没有任何结果。我一直在慢慢地尝试找出触发此问题的原因,并且我发现关闭然后重新打开无线网络,或更改无线连接就可以解决这个问题。

为了成功地继续监听我的数据包,我需要关闭 MulticastSocket 并重新创建它。但是,我还没有找到执行此操作的任何方法 --- 我似乎没有收到任何关于发生了什么事情的通知:没有 Intent ,没有 Java 异常,什么都没有。如果套接字无效,我希望接收端抛出 IOException,但这似乎没有发生。

任何人都可以就 (a) 实际发生的事情以及 (b) 如何解决它提供任何见解吗?现在我最好的猜测是每十秒左右不断地销毁和重新创建套接字,那是邪恶的。

最佳答案

注意:这个答案在 2010 年提出问题时很有意义,今天可能已经无关紧要了。

我认为更改无线网络非常类似于禁用和重新启用网络(可能使用不同的 IP 和路由),所以出现问题并不奇怪。

也许注册网络信息的更改会给你所需的警告?

http://developer.android.com/reference/android/net/ConnectivityManager.html#CONNECTIVITY_ACTION

和相关页面

关于Android 多播套接字停止监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3998214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com