It is still a little unclear what you are trying to do; it is a little painful to parse out the data if you don't know the message-type in advance. However, many implementations will have an API to consume raw protobuf data - it sounds like CodedInputStream is such; as is (in the case of your earlier protobuf-net attempt) ProtoReader. That, however, will not *directly* let you reliably reconstruct a message, unless you know the schema details (are specific integers zig-zag, for example).
Perhaps if you could be more specific as to what the data is that was sent? Note: protobuf includes virtually no "meta" on the wire; all you can find is, for example, "field 2 was 4 bytes, which could have been any of [there] values, depending on whether it was a float, an int, a zig-zag int, etc; field 5 was length-prefixed and 17 bytes - it *looks* like it might be the UTF-8 string "blah blah blah", but it could also have been a sub-message, or a packed array". All of *that* type of data (minus the interpretation) should be available via those APIs. Marc On 19 October 2011 12:00, newbie <[email protected]> wrote: > What I tried to do is this. > > using ProtoBuf; > ... > byte[] body = e.Body; > using (MemoryStream memStream = new MemoryStream(body)) > { > memStream.Seek(0, SeekOrigin.Begin); > MyProtocoClass message = > ProtoBuf.Serializer.Deserialize<MyProtocoClass>(memStream); > > } > > But, I cannot deserialize using protobuf-net lib as it will requires > reference to the class generated from the proto file. Now there are 30 > diff proto files. > > Now I am trying to do this. > > using Google.ProtocolBuffers; > ... > CodedInputStream s = CodedInputStream.CreateInstance(body); > string data=s.ReadString() ; > > But this returns only the first string in the message body. > Please tell me what to do to get the complete message ? > > Thanks. > > On Oct 18, 10:09 pm, Aaron Rich <[email protected]> wrote: > > I would highly recommend looking at this: > http://code.google.com/p/protobuf-wireshark/ > > > > Might get you want you need. > > > > -Aaron > > > > > > > > > > > > > > > > On Tue, Oct 18, 2011 at 11:02 AM, Marc Gravell <[email protected]> > wrote: > > > Well, firstly protobuf is not a text format, so UTF-8 is not the way to > start. What is it you need? Note that the protobuf format is ambiguous > unless you already know the schema (the same data can be interpreted in > different ways). However, if you read the encoding spec, you should be able > to guess many cases. > > > > > Marc > > > > > On 18 Oct 2011, at 11:03, newbie <[email protected]> wrote: > > > > >> Hi, > > > > >> I am developing a sniffer that will sniff messages moving between a > > >> message broker and DWH. The messages are written in "protocol buffers" > > >> serialization format. So the message body that I sniff is a byte > > >> string. > > > > >> How do I decode this message to human readable format? > > > > >> The sniffer is developed in c# .net . > > > > >> I tried using System.Text.Encoding.UTF8.GetString(body) , but extra > > >> character gets added maybe because UTF8 doesn't identify this format. > > > > >> Thanks. > > > > >> -- > > >> You received this message because you are subscribed to the Google > Groups "Protocol Buffers" group. > > >> To post to this group, send email to [email protected]. > > >> To unsubscribe from this group, send email to > [email protected]. > > >> For more options, visit this group athttp:// > 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 [email protected]. > > > To unsubscribe from this group, send email to > [email protected]. > > > For more options, visit this group athttp:// > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/protobuf?hl=en. > > -- Regards, Marc -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.
