之前直接用框架中的编解码,没有设计具体代码,现在要和C交互,需要设计具体的编解码实现,
其中
new ProtobufVarint32LengthFieldPrepender(),
new ProtobufEncoder(),
new ProtobufVarint32FrameDecoder(),
new Protobuf.ProtobufDecoder(Frame.Parser)
编码方式实际为
varint32_length +protobuf_body_array_byte
即变长的32位长度(最长4字节,实际可能为1字节~4字节长度),
protobuf对象转为byte array作为 body负载
解码方式为上面的反向操作。
如上概况有些简略,具体实现可参考相应的源码。
编码参考(writeRawVarint32):
https://blog.csdn.net/nimasike/article/details/101378388
解码参考(ReadRawVarint32):
https://blog.csdn.net/oaa608868/article/details/54893776
其他可做参考
https://www.cnblogs.com/tankaixiong/p/5524483.html