本節ではメッセージの中で使われる基本的なデータ型を説明します。
n(i)
ネットワークバイト順(最上位バイトが先頭)におけるnビットの整数。
もしiが指定されていれば、それがそのまま使われます。
さもなければ変数です。
例えばInt16、Int32(42)などです。
n[k]
nビット整数の要素数kの配列で、それぞれはネットワークバイト順です。
配列サイズkは常にメッセージの前のフィールドで決定されます。
例えばInt16[M]です。
s)
NULL終端文字列(C様式文字列)。文字列には長さ制限の指定はありません。
sが指定されていれば、それがそのまま使われます。
さもなければ値は変数です。
例えばString、String("user")などです。
バックエンドから返すことができる文字列の長さには事前に定義された制限はありません。 フロントエンドではメモリに収まるものはすべて受け入れられるように拡張可能なバッファを使用するコーディング戦略を勧めます。 これが実行できないのであれば、文字列全体を読み取り、固定長バッファに合わない後の方の文字を破棄してください。
n(c)
厳密にnバイト。
フィールド幅nが定数でない場合、メッセージの前のフィールドから決定されます。
cが指定されていれば、それがそのまま使われます。
例えば Byte2、Byte1('\n')などです。