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, "jayt0...@gmail.com" <jayt0...@gmail.com> 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
> CodedOutputStream* coded_output = new CodedOutputStream
> 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
> 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.
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to firstname.lastname@example.org
To unsubscribe from this group, send email to
For more options, visit this group at