Я пытаюсь создать пакет с помощью DatagramPacket, а затем отправить его с помощью DatagramSocket и получить ответ с удаленного сервера.
после запуска этого кода на моем MainActivity
через мое устройство я просто получить пустую страницу, похоже, она "зависла" при попытке получить ответ от сервера, но ничего не происходит:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ByteArrayOutputStream message = null;
ByteArrayOutputStream headerStream = new ByteArrayOutputStream();
try {
message = new ByteArrayOutputStream();
outputStream.write(intToByteArray(0)); // flags
outputStream.write("08".getBytes()); // client type
outputStream.write(intToByteArray(0)); // min version
outputStream.write(intToByteArray(2)); // max version
byte[] payload = outputStream.toByteArray();
byte[] packettypeIdByte = "DD00".getBytes(); // packet type
headerStream.write(packettypeIdByte);
headerStream.write(intToByteArray(payload.length));
headerStream.write(intToByteArray(0)); // version
byte[] header = headerStream.toByteArray();
message.write(header);
message.write(payload);
} catch (IOException e) {
e.printStackTrace();
}
try {
// for discover
InetAddress ip = InetAddress.getByName("XX.XX.XX.XX");
DatagramPacket packet = new DatagramPacket(message.toByteArray(), message.toByteArray().length);
int port = XXXX
DatagramSocket ds = new DatagramSocket(port);
ds.receive(packet);
String str = new String(packet.getData(), 0, packet.getLength());
Log.d("pac", str);
} catch (IOException e) {
e.printStackTrace();
}
есть идеи, что я делаю не так? или как правильно использовать datagramPacket и datagramSocket?