Protocol buffers 数据块长度和文件长度之间的关系是什么?

Protocol buffers 数据块长度和文件长度之间的关系是什么?,protocol-buffers,Protocol Buffers,在proto-stream中,当解码varint中的文件大小和数据块长度时,数据块长度大于文件大小?请帮忙 数据块长度大于文件大小 这听起来不太可能,很可能是以下任何一种情况的结果: 如果您使用的是任何已建立的实现,则不太可能出现损坏的编码器,但并非不可能 传输中的数据流损坏最常见的变体是:使用文本编码(如UTF-8)向后尝试获取字符串-如果确实需要字符串,则应使用base-16 hex或base-64之类的内容 意外地过早截断流 坏掉的解码器 听起来您是在手动解析流,所以坦率地说,我猜是最后一

在proto-stream中,当解码varint中的文件大小和数据块长度时,数据块长度大于文件大小?请帮忙

数据块长度大于文件大小

这听起来不太可能,很可能是以下任何一种情况的结果:

如果您使用的是任何已建立的实现,则不太可能出现损坏的编码器,但并非不可能 传输中的数据流损坏最常见的变体是:使用文本编码(如UTF-8)向后尝试获取字符串-如果确实需要字符串,则应使用base-16 hex或base-64之类的内容 意外地过早截断流 坏掉的解码器
听起来您是在手动解析流,所以坦率地说,我猜是最后一个选项。如果你能发布你正在解码的字节,我们可能会建议你的解释是否正确。或者,您可以尝试通过推送数据来分离数据流并显示其如何解释字节。

<00 E4 02 00 A5 0A F0 3E 1E 08 C9 3F 12 19 08 05 12 03 01 00 05 18 75 2A 0E 44 93 42 AF 44 BF 3F B2 44 B1 44 B0 44 0A 03 08 93 42 22 33 12 42 2F 0A 54 72 61 6E 73 74 69 6F 6E 12 04 6E 6 E 65 19 00 01 02 08F0 3F 29 01 07 01 54 30 00 58 EB D4 FF AA 07 80 00 2A 03 08 AF 44 32 03 08 AE 44 3A 0D 05 78 AF 44 8A 01 03 BF 3F 98 01 A2 01 03 08 B0 44 DA 01 03 08 B2 44 A2 02 03 08 B1 44 D2 02 01 26 01 06 28 AF 44 1F 08 AE 44 12 1A 08 07 12 05 94 A0 C3 01 22 08 0A 04 0A 02 01 06 18 01 04 B3 44 DC 3B 0A BE 01 0A AF 01 0A 01 0A 01 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0D 00 00C8 42 15 00 5A 43 12 01 0C E0 4E 44 15 00 E1 43 18 03 25 00 00 12 03 08 C9 3F 1A 12 08 04 10 02 18 01 25 00 40 41 2D 00 00 00 3F 30 00 28 00 38 00 12 03 08 DC 3B 68 08 00 10 00 2A 62 12 1D 18 1A 54 0A 0E 08 12 01 12 08 00 00 15 01 48 0C 0A 0E 08 05 10 05 05 5 F 00 3A 10 00 04 E1 15 20 05 30 14 E1 43 0 02 08 05 3E 4400 14 12 03 08 B3 44 22 01 05 30 01 10 03 15 08 B3 44 12 10 08 D1 0F 09 E4 F0 4A 6C 2A 04 83 42 C7 41 12 03 08 A8 3F 1A 1F 41 66 74 65 72 20 4B 65 79 6E 6F 74 65 20 38 3F 29 0A 62 75 6C 65 74 20 77 6D 62 61 74 2A 0A 07 08 00 12 08 83 0A 02 08 12 08 08 08 06 08 00 10 18 00 3A 09 A 07 08 01 01 01 01 69 10 C7 41 50 01 72 15 17 04 9A 0105 0B 10 12 02 65 6E C2 09 0B 18 10 00 18 00 1F 08 AF 62 65 01 0C C0 41 B5 44 4E 65 01 04 A0 41 39 06 00 40 9E 65 01 08 C0 41 1A 42 65 01 00 40 C2 65 01 00 40 40 3A 65 01 00 40 50 50 50 50 50 50 02 15 08 B5 2 E 65 01 18 4F 2A 04 AE 3B A2 40 29 65 08 06 57 F 25 4C 31 33 08 A2 40 32 25 26 21 1B 00 3A 11 04 AE 3B 86 48 01 18 12 08B2 44 12 0D 08 2D C9 0C 05 2A 02 B4 61 35 10 B4 44 15 08 B4 2E 7D 00 00 3E 01 7D 0C 3B 08 05 F 15 77 04 AC 3B 82 77 00 3D B4 20 0F 08 B1 44 12 0A 08 E7 17 49 36 0C 00 1F 08 B0 62 C4 01 08 DB 40 B6 3E C4 01 18 00 44 00 80 3D 25 C4 20 48 42 00 E8 41 18 00 92 29 03 04 DB 40 32 C4 01 01 0D 6A 29 03 22 05 10 04 E8 36 29 29 29 2903 04 E8 41 5A 29 03 00 B6 21 C4 00 B6 21 C4 18 01 17 08 B6 44 12 75 29 20 4C 2A 06 AE 3B C0 40 B7 44 25 47 10 1A 03 EF BF BC 35 4C 00 C0 56 C3 01 00 4A 31 CE 04 B7 44 2E 01 32 57 01 00 B7 21 57 00 FB 2D C4 11 0A 04 0A 00 10 00 10 00 22 07 64 63 69 6D 61 6C


解码前六个字节

什么是变量?请仅选择一个标记:或。如果代码可以与C兼容,请只使用标记。proto streams是否与C相关?无论是原始流还是ValnT都是普通C或普通C++中的东西,所以如果你使用合适的标签,回答这个问题的人更可能找到它。我想他可能是在谈论谷歌的原BoFF消息,但是这个问题值得。terminated@VadimKotov有很多问题需要同时标注,就像有些问题应该同时标记和一样。我确实同意,大多数同时被标记的问题通常只应该是一个或另一个,我不确定这一个应该有两个标记。请查看below@BradMcquaid00作为protobuf中的第一个字节无效;这些数据毫无意义。您是如何获得此输出的?请查看下面的文件@BradMcquaid不是snappy中包装的IWA?00作为protobuf中的第一个字节无效;这些数据毫无意义。您是如何获得此输出的?