Типы данных сообщения
В этом разделе описаны базовые типы данных, используемые в сообщениях.
Intn(i)
n-битное целое число в сетевом порядке байтов (старший байт первый). Если указано i, то будет выведено точное значение, в противном случае значение будет переменным. Например, Int16, Int32(42).
Intn[k]
Массив из k n-битных целых чисел, каждое из которых располагается в сетевом порядке байт. Длина массива k всегда определяется более ранним полем в сообщении. Например, Int16[M].
String(s)
Строка с нулевым окончанием (строка в стиле C). Для строк не существует специального ограничения на длину. Если указано s, то это будет точное значение, которое появится, в противном случае значение будет переменным. Например, String, String("user").
Примечание:
Не существует предопределенных ограничений на длину строки, которую может вернуть бэкенд. Хорошая стратегия кодирования для фронтенда заключается в использовании расширяемого буфера, чтобы все, что подходит в памяти, могло быть принято. Если это невозможно, прочитайте всю строку и отбросьте последующие символы, которые не подходят к буферу фиксированного размера.
Byten (c)
Ровно n байт. Если ширина поля n не является константой, то она всегда определяется из более раннего поля сообщения. Если указано c, то это точное значение. Например, Byte2, Byte1('\n').