/**
* 处理接受到的消息
* /
private void receiveMessage() {
while (isThreadRunning) {
try {
if (client != null) {
client.receive(receivePacket);
}
lastReceiveTime = System.currentTimeMillis();
Log.d(TAG, "receive packet success...");
} catch (IOException e) {
Log.e(TAG, "UDP数据包接收失败!线程停止");
stopUDPSocket();
e.printStackTrace();
return;
}
if (receivePacket == null || receivePacket.getLength() == 0) {
Log.e(TAG, "无法接收UDP数据或者接收到的UDP数据为空");
continue;
}
String strReceive = new String(receivePacket.getData(), receivePacket.getOffset(), receivePacket.getLength());
Log.d(TAG, strReceive + " from " + receivePacket.getAddress().getHostAddress() + ":" + receivePacket.getPort());
/ / 解析接收到的json信息 notifyMessageReceive(strReceive); // 每次接收完UDP数据后,重置长度.否则可能会导致下次收到数据包被截断.
if (receivePacket != null) { receivePacket.setLength(BUFFER_LENGTH);
}
}
}
来源: https://mp.weixin.qq.com/s/GtqQNkk1eJQg_m6zmR9Dfg