client side:

address_book.SerializeToString(&mystr)
strncpy(buf, mystr.c_str(), strlen(mystr.c_str()));
sendto(socket, buf, ....)

server side:

recvfrom(socket, buf, ....)
mystr.assign(buf, strlen(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?

thanks,


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
>>
>> address_book.ParseFromString(mystr)
>>
>> 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?
>>
>> thanks,
>> brad
>>
>> --
>> 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
>> protobuf+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/protobuf?hl=en.
>>
>
>

-- 
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 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to