Я пытаюсь разобрать несколько сообщений буфера протокола в Java, которые генерируются в vb.netProtobuf C# для Java десериализация несколько сообщений
Я использую отличную Protobuf-сеть для потоковой передачи несколько сообщений на Java как на ниже:
ProtoBuf.Serializer.SerializeWithLengthPrefix(Of Msg)(postStream, msg,
ProtoBuf.PrefixStyle.Base128)
в Java, я использую следующий код для разбора сообщений
final byte[] buffer = new byte[4096];
for (int c = ins.read(buffer); c >= 0; c = ins.read(buffer)) {
Msg msg = Msg.parseDelimitedFrom(new ByteArrayInputStream(buffer));
}
Проблема в том, после того, как первое сообщение обрабатывается, он выдает ошибку синтаксического анализа себе cond со следующей погрешностью:
com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either than the input has been truncated or that an embedded message misreported its own length.
Если размер буфера и размер сообщения одинаковы? Если да, то как его разобрать, особенно для больших сообщений.
Удаление '[C#]' и '[vb.net]', поскольку ответ, похоже, не нуждается в ссылке на любой из них. –
Привет, У меня очень похожая проблема, вы могли бы подробнее остановиться на своем решении. У меня есть C# файл, который анализирует файл, содержащий много прото сообщений и он использует тот же код, который вы вставили ProtoBuf.Serializer.SerializeWithLengthPrefix (Of Msg) (postStream, сообщ, ProtoBuf.PrefixStyle.Base128) –