Próbuję analizować wiele wiadomości buforowe protokół w języku Java, które są generowane w VB.NETProtobuf C# Java deserializacji wielu wiadomości
używam doskonałą protobuf netto do przesyłania wielu wiadomości do Javy, jak na poniżej:
ProtoBuf.Serializer.SerializeWithLengthPrefix(Of Msg)(postStream, msg,
ProtoBuf.PrefixStyle.Base128)
W Javie Używam następujący kod do analizowania wiadomości
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));
}
problem polega po pierwsze wiadomość jest analizowany, zgłasza błąd do analizowania se czas zwłoki z następującym błędem:
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.
Czy rozmiar bufora i rozmiar wiadomości są takie same? Jeśli tak, to jak mam je przeanalizować, zwłaszcza w przypadku dużych wiadomości.
Usunięcie '[C#]' i '[vb.net]' jako odpowiedzi nie wydaje się wymagać odniesienia się do żadnego z nich. –
Witam, mam bardzo podobny problem, mógłbyś dalej rozwinąć swoje rozwiązanie. Mam plik C#, który analizuje plik zawierający wiele wiadomości proto i wykorzystuje ten sam kod wklejony ProtoBuf.Serializer.SerializeWithLengthPrefix (MSG) (postStream, MSG, ProtoBuf.PrefixStyle.Base128) –