我在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,则所有工作都会再次工作......
有同样问题的人吗?
答案 0 :(得分:0)
每次设备的连接状态发生变化时,您可能需要重新创建并重新绑定接收套接字。