Предисловие: у меня совсем НЕТ опыта и, вероятно, я совершал глупые ошибки. Пожалуйста, исправьте эти ошибки и научите меня, как быть лучше, вместо того, чтобы ругать меня за невежество, если бы я уже не был унижен своим недостатком знаний, мне не нужно было бы просить о помощи. Я искал в Интернете решение, но, возможно, я выбираю все неправильные ключевые слова.
Я должен использовать UDP, а не TCP (слишком долго объяснять), и мне нужно отправить большой byte[] от клиента к серверу, который не поместится в один DatagramPacket. Поэтому я решил разбить byte[] на куски не длиннее 1024, прежде чем создавать свои DatagramPackets.
Проблема: как только сервер получает пакеты, они, конечно же, не в порядке. Мне нужен способ пересобрать переменное количество DatagramPackets обратно в один байт []
Мой план: создать новый байт[] с метаданными о каждом байте[] в вышеуказанном пакете дейтаграмм (например, общее количество пакетов после разделения, положение конкретного пакета, UUID группы пакетов) и добавить это перед каждым пакетом дейтаграммы. .
byte[] (UUID idOfPacket + int positionOfPacket + int numberOfPackets) + byte[] data(not actual code just so you get an idea of how I want to arrange the byte[] incase my description was bad)
Поскольку я понятия не имею, как определить, когда заканчиваются метаданные и начинаются исходные данные пакета, я подумал, что могу использовать метаданные, которые представляют собой заданную длину байтов, чтобы я всегда мог разделить в определенной точке на сервере и рекомбинировать на основе информации из метаданных .
Вопрос. Это кажется плохой идеей, потому что после развертывания я никогда не смогу настроить формат метаданных. Есть ли лучший способ приблизиться к этому?