Любые предложения о том, как ждать пакет неизвестной длины в сокете, и сделать некоторую обработку с его байтами полезной нагрузки максимально эффективно? - PullRequest
4 голосов
/ 14 февраля 2012

Мне нужно написать UDP-сервер, который будет ожидать пакетов от некоррелированных устройств (максимум 10000 из них), периодически отправляющих небольшие пакеты;выполнить некоторую обработку с полезной нагрузкой и записать результаты на SQL.Теперь я закончил с частью SQL через jdbc, но байты полезной нагрузки продолжают вызывать у меня проблемы, как мне получить к ним доступ?До сих пор я работал с полезной нагрузкой, сопоставленной со строкой, и затем преобразовывал строку в шестнадцатеричный код (два шестнадцатеричных символа, представляющих один байт).Я знаю, что есть лучший способ сделать это, но я этого не знаю ...

1 Ответ

4 голосов
/ 14 февраля 2012

Разве вы не хотите просто создать DatagramSocket и получить на нем DatagramPacket с?

Вам необходимо указать максимальную длину пакета в зависимости от буфера, который вы используете для его создания, но тогда вы сможете узнать, сколько данных было на самом деле отправлено в пакете с использованием getLength().

См. Java Tutorial для получения более подробной информации и примера.

...