我ParseFromArray协议缓冲区的协议,协议不缺任何领域.但是ParseFromArray函数返回false.为什么?
我假设你正在使用C++.  ParseFromArray()失败如果:
如果您确定已设置所有必填字段,则必须是输入数据已损坏的情况.您应确认要传递到字节和大小ParseFromArray()都完全相同,你从了字节和大小SerializeToArray(),并ByteSize()在发送端.您可能会发现某处丢失了某些字节,或者某些字节已损坏.
腐败的常见原因包括:
String,则数据将被破坏,因为这些通道需要文本,和编码的protobufs不是文本.char*,即假定NUL终止.编码的protobufs可以包含'\0'字节,这意味着您不能char*单独表示一个- 您必须单独包含大小.SerializeToArray(),您还必须打电话ByteSize()查看消息的大小,并且您必须确保接收端接收该大小并将其传递给ParseFromArray().否则,解析器会认为缓冲区末尾的额外字节是消息的一部分,并且无法解析它们.| 归档时间: | 
 | 
| 查看次数: | 7542 次 | 
| 最近记录: |