本节描述消息中使用的基础数据类型。
n
(i
)网络字序中的 n
位整数(最高有效字节在前)。如果指定了 i
,则它是将要显示的确切值;否则,该值是可变的。例如,Int16、Int32(42)。
n
[k
]长度为 k
的 n
位整数数组,每一个都在网络字节顺序中。数组长度 k
总是由消息中的较早字段确定。例如 Int16[M]。
s
)以 null 结尾的字符串(C 语言样式的字符串)。对字符串没有特定长度限制。如果指定了 s
,则它是将要显示的确切值;否则,该值是可变的。例如,String、String("user")。
对于后端返回的字符串长度没有预定义限制。对于前端而言,良好的编码策略是使用可扩展缓冲区,以便可以接受任何适合内存的内容。如果这是不可行的,则请读取完整字符串,并丢弃不适合你的固定大小缓冲区的尾随字符。
n
(c
)恰好 n
字节。如果字段宽度 n
不是常量,那么它总是可以从消息中的较早字段中确定。如果指定了 c
,则它就是确切的值。例如 Byte2、Byte1('\n')。