Я реализовал логику для получения сообщения из массива байтов.Не удалось получить сообщение полной длины
public getInfo(byte[] hi) {
type = ....
sequence = ....
int ack = ....
int lastbyte = ....;
int isUTF8byte = .....;
actual_msg += (char) hi[CHAR1];
actual_msg += (char) hi[CHAR2];
actual_msg += (char) hi[CHAR3];
actual_msg += (char) hi[CHAR4];
actual_msg += (char) hi[CHAR5];
}
Проблема в том, что это только дает мне первые пять символов сообщения. Я имею в виду, если массив байтов содержит Hello How are you
, я получаю только вывод Hello
. Байт-массив имеет от 3-го по 7-й байт (5 байтов) с символьными сообщениями.
Я думаю, что логика остающихся символов в сообщении должна быть внутри цикла for
, потому что в настоящее время у меня есть логика, чтобы читать только первые 5 символов. 0-й и 2-й байты одинаковы для всех наборов сообщений. Меня беспокоит только 3rs-7-й байт.
Как это реализовать?
Если 'байт []' имеет длину 7 байт, как вы ожидаете, что он проведет «Привет, как дела»? – bradimus
Нет. Я имею в виду, что размер is not 7 bytes. Поля байтового массива содержат от 3-го по 7-й байт в виде сообщений char. Я редактировал свой вопрос. Извините – Mark023
По-прежнему звучит так, будто у вас недостаточно байтов. Чтобы получить «Привет, как вы», вам нужно будет использовать 'byte' с 3 по 19 (при условии, что я правильно подсчитал). Является ли сообщение ограниченным 7 байтами или есть место для большего количества данных? – bradimus