本节描述消息里用到的基本数据类型。
n
(i
) 一个网络字节序(高位在前)的n
位整数。 如果指定了i
, 它就是将出现的准确值,否则该值就是一个变量。如 Int16、Int32(42)。
n
[k
] 一个k
个n
位整数的数组, 每个都是以网络字节序表示的。数组长度k
总是由消息前面的域来判断的。比如,Int16[M]。
s
) 一个(C风格的)空值结束的字符串。对字符串没有特别的长度限制。如果指定了s
,那么它是将出现的确切的值, 否则这个值就是一个变量。比如,String, String("user")。
后端能返回的字符串的长度没有预定义的限制。所以对前端比较好的编码策略是使用某种可扩展的缓冲区,以便能接受任何能放进内存里的东西。如果那样做不可行,则读取完整的字符串然后抛弃不能放进固定大小缓冲区的尾部字符。
n
(c
) 精确的n
字节。 如果域宽度n
不是一个常量, 那么我们总是可以从消息中更早的域中判断它。如果指定了c
,那么它就是确切数值。 例如,Byte2, Byte1('\n')。