反序列化缓冲区协议缓冲区

时间:2018-11-14 00:15:32

标签: protocol-buffers

我正在尝试从套接字反序列化缓冲区。 它定义为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和固定大小的字节。

1 个答案:

答案 0 :(得分:2)

protobuf实际上没有固定大小的数组,并且固定大小的整数不包含5个字节。所以;最好的选择可能是docker run -p 5984:5984 -d couchdb ,并使其始终包含正好5个字节。

注意:protobuf并不是一种用于解析任意协议/有效负载(例如套接字帧或原始C样式转储)的机制。 旨在用于protobuf本身。