49.4. 消息数据类型

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

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')