JAVA-пакет для передачи дейтаграмм фрагментирован - PullRequest
0 голосов
/ 31 мая 2019

У меня есть следующий код для отправки пакета ...

sendSocket = new DatagramSocket(new InetSocketAddress (InetAddress.getByName (prefs.get ("interfaceIP", Defaults.defaultInterfaceIP)), 0));

log.debug ("length = " + responsePacket.getLength ());

sendPacket = new DatagramPacket (responsePacket.getData (), responsePacket.getLength (), this.deviceHostAddress, prefs.getInt ("port", Defaults.defaultPort));
sendSocket.send (sendPacket);

Данные, которые я пытаюсь отправить, имеют длину 3527 байт (из строки log.debug), и по какой-то причине при просмотре пакета на Wireshark я вижу, что пакет «фрагментирован» и что только 1480 байт были послал. Для меня это было бы нормально, поскольку пакет должен помещаться в MTU. Однако я не вижу остальной части данных, поступающих в последующих пакетах (и, следовательно, соединяемых на основе идентификаторов пакетов).

Есть идеи, почему DatagramSocket.send отправляет только первый фрагмент, а не остальные?

...