更改wifi状态Android时接收UDP广播失败

时间:2013-10-07 14:04:46

标签: android sockets udp wifi broadcast

我在AsynTask中有一个接收例程:

                    byte[] message = new byte[1500];
                    s = new DatagramSocket(null);
                    s.setReuseAddress(true);
                    s.bind(new InetSocketAddress(dataclass.getDataclass().GGGPort));
                    p = new DatagramPacket(message, message.length);
                    s.setSoTimeout(500);
                    s.setBroadcast(true);
                    dataclass.getDataclass().setGoOut(true);
                    s.receive(p);

此代码非常适合在Android中接收UDP广播数据包,但我们遇到一个问题: 当在Android中接收UDP数据包并且我关闭接入点(没有更多数据包到达)并且在我打开接入点之后,我遇到了同样的问题:超时。

在这种情况下,如果我禁用wifi并启用wifi,则所有工作都会再次工作......

有同样问题的人吗?

1 个答案:

答案 0 :(得分:0)

每次设备的连接状态发生变化时,您可能需要重新创建并重新绑定接收套接字。