48.4. 消息数据类型

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

Int_n_(_i_)

一个网络字节顺序的_n_位整数。 如果声明了_i_,它就是将出现的确切值,否则这个数值就是一个变量。 比如 Int16 ,Int32(42)。

Int_n_[_k_]

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

String(_s_)

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

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

Byte_n_(_c_)

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