I tried to convert msg.ByteSize() to LittleEndian and to BigEndian,
but that didn't helps.
I thought, that {0 0 0 18 ... } is the size, but no. Size is 17.
Look at screens: in C++ I have {17 8 1 26 12 ...}. In Java : {0 0 0 18
17 8 1 26 12...}
But what is {0 0 0 18} ? I have no more IO operations exept in
Client::send().On 10 июл, 22:00, "[email protected]" <[email protected]> wrote: > the leading variant in c++ is most likely in the wrong byte order if > you are running a x86 machine. as i said, you need to flip them. > mike > > > > > > On Sat, Jul 10, 2010 at 8:53 PM, Maxim Leonovich <[email protected]> wrote: > > I watched on both buffers: they are similar, but in C++ I can't find a > > leading Variant32 with size, when in Java it exists. The rests of > > buffers are identical. > >http://pic4.ru/8337 > >http://pic4.ru/8338 > >http://pic4.ru/8339 > > > On 10 июл, 19:33, Evan Jones <[email protected]> wrote: > >> On Jul 10, 2010, at 7:47 , Maxim Leonovich wrote: > > >> > ArrayOutputStream(buffer,msg.ByteSize() + 4,sizeof(char)); > > >> The documentation states: > > >> block_size is mainly useful for testing; in production you would > >> probably never want to set it. > > >> So you should get rid of the "sizeof(char)" part. > > >> > cos->WriteLittleEndian32(msg.ByteSize()); //Tryed > >> > "WriteVariant32", didn't help > >> > msg.SerializeToCodedStream(cos); > > >> If you want to use Java's .parseDelimitedFrom, you *must* use > >> WriteVarint32, because that is the format it expects the length > >> prefix. In this case, you'll need to call ArrayOutputStream:: > >> ByteCount() to figure out how many bytes were actually serialized. > > >> You also probably should create the ArrayOutputStream and > >> CodedOutputStream on the stack, rather than using new. This will be > >> slightly faster. > > >> That said, the only issue here that affects correctness is the > >> WriteVarint32 part. The rest shouldn't matter unless I missed > >> something. You should change your code to do that, then if you are > >> still having problems you should try dumping the contents of the > >> buffer on both the C++ and the Java side. Maybe the input/output is > >> getting messed up somewhere? > > >> Good luck, > > >> Evan > > >> -- > >> Evan Joneshttp://evanjones.ca/ > > > -- > > 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. > > -- > James Michael DuPont > Member of Free Libre Open Source Software Kosova and Albania > flossk.org flossal.org -- 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.
