strncpy(buf, mystr.c_str(), strlen(mystr.c_str()));
sendto(socket, buf, ....)
recvfrom(socket, buf, ....)
if (address_book.ParseFromString(mystr) == false)
print "deserialization failed"
I get deserialization failed all the time, but get the message correctly though.
Maybe this method is not the right way to send string across socket.
I tried using SerializeToFileDescriptor(socket), that worked on the
client side, but on the server side, i never get the message with UDP sockets.
is there a better way of sending data across network?
On Tue, Nov 9, 2010 at 5:43 PM, Kenton Varda <ken...@google.com> wrote:
> It sounds like you probably have extra bytes at the end of mystr which are
> not part of the protobuf. The parser parses everything before those bytes
> just fine, but then chokes when it gets to the bytes it doesn't recognize.
> Please make sure you only pass in the exact bytes which came out of the
> serializer at the other end, no more, no less.
> On Tue, Nov 9, 2010 at 1:11 PM, Brad Lira <snmp.apa...@gmail.com> wrote:
>> I have a c++ client/server application that sends messages using
>> protocol buffers, however, at the server side, when i call
>> it returns false, but it actually gets the message correctly from
>> client side, so i am not sure why it thinks that parsing has failed.
>> any ideas?
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To post to this group, send email to proto...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> For more options, visit this group at
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to
For more options, visit this group at