【发布时间】:2011-04-29 05:34:59
【问题描述】:
我在 Android 上有一个服务,它侦听并响应它通过多播接收的数据包。
这在大多数情况下都有效,但不幸的是,我发现它会时不时地停止接收数据包。线程在调用 MulticastSocket.receive() 时保持阻塞,但没有任何结果。我一直在慢慢尝试找出是什么触发了这种情况,我发现关闭并重新打开无线,或更改无线连接即可。
为了成功继续监听我的数据包,我需要关闭 MulticastSocket 并重新创建它。但是,我还没有找到任何方法来执行此操作 --- 我似乎没有收到任何通知表明发生了什么事:没有意图,没有 Java 异常,什么都没有。如果套接字无效,我希望接收会抛出 IOException,但这似乎没有发生。
谁能提供关于 (a) 实际发生了什么以及 (b) 如何解决它的任何见解?现在我最好的猜测是每隔十秒左右不断地销毁和重新创建套接字,这简直是邪恶的。
【问题讨论】:
标签: android sockets multicast multicastsocket