У меня есть сообщение protobuf, которое записывается во время анализа.
Я запустил клиент и сервер на одной машине и сериализовал поток байтов.
Я сравниваю это с полученным массивом байтов, используя Arrays.equal в Java.
Он говорит, что они равны.
В моем protobuf есть только одно поле фиксированного32, в котором хранится IP-адрес.
Я безуспешно использовал обе версии google protobuf 2.4.1 и 2.5.0. Что-нибудь мне здесь не хватает?
Stacktrace:
com.google.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero).
at com.google.protobuf.InvalidProtocolBufferException.invalidTag(InvalidProtocolBufferException.java:89)
at com.google.protobuf.CodedInputStream.readTag(CodedInputStream.java:108)
...
...
Код прототипа:
message IpMessage {
required fixed32 ip = 1;
}
Компиляция:
protoc --java_out=. ip-message.proto
Для анализа сообщения я использую:
IpMessage.parseFrom(receivedPkt); //receivedPkt is byte[]
Источник: https://stackoverflow.com/questions/245 ... d-tag-zero
InvalidProtocolBufferException при разборе protobuf — неверный тег (ноль) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение