Sto cercando di analizzare più messaggi di buffer protocollo in java che vengono generati in vb.netProtobuf C# a Java deserializzazione più messaggi
Sto usando l'eccellente protobuf-net per lo streaming di messaggi multipli a Java come sotto:
ProtoBuf.Serializer.SerializeWithLengthPrefix(Of Msg)(postStream, msg,
ProtoBuf.PrefixStyle.Base128)
In Java, io sto usando il codice seguente per analizzare i messaggi
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));
}
problema è dopo il primo messaggio viene analizzato, si genera un errore per l'analisi di se cond time con il seguente errore:
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.
Le dimensioni del buffer e le dimensioni del messaggio devono essere uguali? Se sì, allora come dovrei analizzarlo, specialmente per i messaggi di grandi dimensioni.
Rimuovere '[C#]' e '[vb.net]' poiché la risposta non sembra aver bisogno di riferirsi a nessuno di questi. –
Ciao, ho un problema molto simile potresti approfondire la tua soluzione. Ho file C# che analizza un file che contiene molti messaggi proto e utilizza lo stesso codice incollato ProtoBuf.Serializer.SerializeWithLengthPrefix (MSG) (postStream, msg, ProtoBuf.PrefixStyle.Base128) –