2015-10-03 4 views
0

Так что скажем, у меня есть байтовый массив byte[] bytes, который инициализирован некоторыми данными (клиентская сторона).Каков наилучший способ установки префикса пакета?

Содержимое массива байтов может быть типа A или B.

Затем я хочу отправить массив на свой сервер. И я хочу, чтобы сервер мог определить, какой из двух типов данных содержит массив (A или B)

Я думал о добавлении еще одного байта (так как это будет всего лишь несколько типов. 3) в качестве префикса к началу массива, чтобы сервер мог идентифицировать тип, затем удалить первый байт и прочитать содержимое.

Есть ли причина, по которой я не должен этого делать? Есть ли другой подход лучше этого?

P.S. Я не хочу отправлять другое сообщение до моего массива, чтобы сообщить о типе следующего сообщения.

+0

Если он не распознан в сообщении сервером, у вас есть дефект дизайна. – ergonaut

+0

Но это то, что я пытаюсь сделать – Rakim

ответ

0

Есть ли причина, по которой я не должен этого делать?

Нет. Конечно, нет причин ... для проблемы, как вы ее описали.

Есть ли другой подход лучше этого?

Может быть, но ваше решение достаточно хорошее ... для проблемы, как вы ее описали.


Единственное усовершенствование, которое я хотел бы предложить, чтобы спроектировать код на стороне сервера, так что это не на самом деле нужно удалить «префикс» из массива байтов. Получите это начало, прочитав содержимое сообщения в позиции байта, а не в позиции байта.

+0

Я думал о минимальной нагрузке на массив, чтобы сделать его идентифицируемым сервером. Использование только байта массива звучит как оптимальное решение ... Копание глубже в биты только усложнит код. Да, это в значительной степени то, что я имел в виду, когда я сказал «удалить». Я был более «игнорирующим»! – Rakim

+0

Вы выполнили математику, чтобы решить, сколько вы могли бы сэкономить, закодировав префикс менее чем на один байт? Вероятно, около 100 000 секунд в секунду, предполагая скорость передачи 1 Мбит/с. В локальной сети вы должны получить от 10 до 100 раз быстрее этого. Вопрос: это действительно стоит беспокоиться? В самом деле? –

+0

говорить с цифрами. Я вижу, почему я хотел бы это сделать. Но с текущими скоростями я не думаю, что это того стоит. – Rakim

Смежные вопросы