private void udpSend() {
new Thread(new Runnable() {
@Override
public void run() {
try {
byte[] bytes = new byte[0]; //我不需要传递数据到服务器,所以写了个空的
InetAddress inet = InetAddress.getByName("255.255.255.255");
DatagramPacket packet = new DatagramPacket(bytes, 0, inet, port);
DatagramSocket datagramSocket = new DatagramSocket();
datagramSocket.setSoTimeout(10000);
datagramSocket.send(packet);
udpReceiver();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
private void udpReceiver() {
try {
DatagramSocket datagramSocket = new DatagramSocket(port);
byte[] buff = new byte[20];
DatagramPacket packet = new DatagramPacket(buff, buff.length);
datagramSocket.receive(packet);
InetAddress ip = packet.getAddress();
String ipStr = ip + "";
if (!TextUtils.isEmpty(ipStr)) {
Constants.CONTROLLER_IP = ipStr.substring(1, ipStr.length());
}
datagramSocket.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}