[zeromq-dev] Java to C++: junk appended to message?

Wolfgang Richter wolf at cs.cmu.edu
Mon Aug 30 20:35:34 CEST 2010


What he meant was that C or C++ will look for a special "guard" byte at the end of every string.

It must be '\0' and not some other character.  That is how strings are represented in these languages.

--
Wolf

On Aug 30, 2010, at 2:30 PM, Naveen Chawla <naveen.chwl at gmail.com> wrote:

> In C++ to C++, I was sending a message inited to 6 bytes containing "Hello".
> In Java, the problem described persists even if, as per your
> suggestion, I send an extra character, e.g. "Hellox".
> 
> On 30 August 2010 19:02, Pieter Hintjens <ph at imatix.com> wrote:
>> On Mon, Aug 30, 2010 at 7:29 PM, Naveen Chawla <naveen.chwl at gmail.com> wrote:
>> 
>>> C++ to C++ works fine. Message is only "[Hello]"
>> 
>> You're sending five bytes, 'Hello', which is not a valid C string as
>> required by the printf function.  Either send six bytes (string plus 0
>> byte) or else convert the received message data to a valid string.
>> 
>> I've wondered if 0MQ should not automatically and always append a null
>> byte to received messages (not included in stated message size) so
>> that strings can be safely passed between C/C++ and other languages.
>> 
>> -
>> Pieter Hintjens
>> iMatix - www.imatix.com
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>> 
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
> 



More information about the zeromq-dev mailing list