One other thing I wanted to say was that I chose to use
CodedOutputStream to send
data because ultimately I have to manually encode a length prefix in
front of my PB message.
With the C++ environment, I understand that this is the only way to do
this (ugh is right; I am sure this is a common problem with using PB
over sockets that remain in use).
I am fully aware that there are methods to serialize directly from the
object but those will not serve my ultimate aim of getting a length
prefix ahead of the data bytes.



On Sep 18, 12:19 pm, "" <> wrote:
> Hello all,
> I am having trouble figuring out how to serialize data over a socket
> utilizing UDP protocol.  I am in C++ environment.  When writing to the
> socket without protocol buffers, I use the standard sendto() socket
> call which allows me to specify the port and IP address of the
> intended receiver of my UDP message.  When trying to send a protocol
> buffers message, this seems to be the recommended strategy on the
> google docs:
>         ZeroCopyOutputStream* raw_output   = new FileOutputStream
> (sock);
>         CodedOutputStream*    coded_output = new CodedOutputStream
> (raw_output);
>         coded_output->WriteRaw(send_data,strlen(send_data));
> There is no way to specify what the port and IP address is here,
> analogous to when using the standard sendto() socket writing call.  So
> my message never gets received by the intended recipient on the
> network.  I am aware that this is a raw message, not a PB message.
> Getting this raw message over the network is a first step in
> accomplishing the ultimate goal of getting the PB message over the
> network.
> Is there a way to get all of the bytes of a serialized PB message into
> raw form and then send them with sendto()?
> Any ideas? Thanks for any help.
> Jay
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to