我正在尝试从套接字反序列化缓冲区。 它定义为C结构。
struct的一个成员是uint8 [5]。
我坚持用.proto文件来表达这一点。
发件人的原始C结构在下面。
typedef struct {
uint32_t body_length;
uint8_t body_version;
uint8_t reserved[5];
}
我的struct.proto试用版在下面。
syntax = "proto3";
message message_t {
uint32 body_version = 1;
uint8 body_version = 2; //uint8_t body_version;
bytes reserved = 3; //uint8 reservered[5];
}
我不知道如何表达uint8和5字节大小的数组。 在proto3规范中没有uint8和固定大小的字节。
答案 0 :(得分:2)
protobuf实际上没有固定大小的数组,并且固定大小的整数不包含5个字节。所以;最好的选择可能是docker run -p 5984:5984 -d couchdb
,并使其始终包含正好5个字节。
注意:protobuf并不是一种用于解析任意协议/有效负载(例如套接字帧或原始C样式转储)的机制。 仅旨在用于protobuf本身。