53.6. 消息数据类型

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

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