43.3. 消息数据类型

本节描述消息里用到的基本数据类型。

Intn(i)

一个网络字节序(译注:高位->高地址,底位->底地址)的 n 位整数。 如果声明了 i, 它就是将出现的确切值,否则这个数值就是一个变量。如 Int16,Int32(42)。

Intn[k]

一个 kn 位整数元素的数组, 每个都是以网络字节序存储的。数组长度 k 总是由消息前面的字段来判断的。比如,Int16[M]。

String(s)

一个(C 风格的)空零结尾的字串。对字串没有特别的长度限制。 如果声明了 s,那么它是将出现的确切的数值, 否则这个数值就是一个变量。比如,String,String("user")。

注意: 后端返回的字串的可能长度没有预定义的限制。 所以前端必须使用良好的编码策略, 使用某种可扩展的缓冲区以便能接受任何能放进内存里的东西。 如果那样做不可行,则读取全长的字串然后抛弃不能放进你的定长缓冲区的尾部字符。

Byten(c)

精确的 n 字节。 如果字段宽度 n 不是一个常量, 那么我们总是可以从消息中更早的字段中判断它。 如果声明了 c那么它是确切数值。 例如,Byte2, Byte1('\n')。