Как зарезервировать поле пакета? - PullRequest
0 голосов
/ 30 июня 2011

В Java я поставил один байт, как это.Как мне зарезервировать следующие 3 байта?Я слышал, что лучше упаковывать данные по 4 байта

final byte PACKET_TYPE = 3;
bBuffer.put(PACKET_TYPE);

Кроме того, если я хочу исправить поле строковых данных как 48 байтов, то как мне обрабатывать, если строковые данные меньше 48 байтов?Я не хочу добавлять размер строки ...

Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Одним словом, отступы:

final byte PACKET_TYPE = 3;
final byte PAD_BYTE = 0;
bBuffer.put(PACKET_TYPE);
bBuffer.put(PAD_BYTE);
bBuffer.put(PAD_BYTE);
bBuffer.put(PAD_BYTE);

Для строкового поля фиксированной ширины вы можете заполнить нулевыми байтами (байтом 0), предполагая, конечно, что сама строка никогда не будет содержать такие байты.

0 голосов
/ 30 июня 2011

Если я собираюсь написать int в этом месте, я просто отмечу буфер, напишу int (любой старый int, не имеет значения), а затем, когда я закончу, вернусь к метке ина самом деле напишите это снова с правильным значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...