You want to serialize your message to an array first (use SerializeToString() or SerializeToArray()), then write that using send(). Don't use FileOutputStream -- it is meant for stream-based I/O, not UDP.
On Fri, Sep 18, 2009 at 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 > (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 protobuf@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 -~----------~----~----~----~------~----~------~--~---