<div dir="ltr">Hi Pieter,<div style>      I do some tests about communication in different zeromq version. I found that zeromq2.2 peer received the content of message from zeromq4.0.3 peer is different from that received it from zeromq2.2 peer when the same message is sent. Just like the following.</div>
<div style>      In zeromq4.0.3 peer(client).</div><div style>    int main (void)</div><div>{</div><div>    void *context = zmq_init (1);</div><div>    void *responder = zmq_socket (context, ZMQ_DEALER);</div><div>    int rc = zmq_connect (responder, "tcp://<a href="http://10.10.37.117:5555">10.10.37.117:5555</a>");</div>
<div>    assert (rc == 0); </div><div>    zmq_send(responder, "hello", 5, 0); </div><div>    sleep(10);</div><div>    return 0;</div><div style>} </div><div style>  In zeromq2.2 peer(server).</div><div style> int main (void)</div>
<div>{</div><div>        void *context = zmq_init(1);</div><div>        void *responder = zmq_socket (context, ZMQ_ROUTER);</div><div>        int rc = zmq_bind (responder, "tcp://*:5555");</div><div><br></div><div>
        while (1) {</div><div>                zmq_msg_t msg;</div><div>                zmq_msg_init(&msg);</div><div>                zmq_recv (responder, &msg, 0);</div><div>                printf ("%s\n", zmq_msg_data(&msg));</div>
<div>                sleep (1);         </div><div>        }</div><div>        return 0;</div><div>}</div><div><br></div><div style>I found that it would receive 3 empty message in zeromq2.2 peer before receiving the "hello", </div>
<div style>but if the peer is installed zeromq4.0.3 ,just like following</div><div style> int main (void)</div><div>{</div><div>        void *context = zmq_init(1);</div><div>        void *responder = zmq_socket (context, ZMQ_ROUTER);</div>
<div>        int rc = zmq_bind (responder, "tcp://*:5555");</div><div>        assert (rc == 0); </div><div>  </div><div>        while (1) {</div><div>                char buffer[10];</div><div>                zmq_recv(responder, buffer, 10, 0); </div>
<div>                printf ("%s\n", buffer); </div><div>                sleep (1);          //  Do some 'work'</div><div>        }</div><div>}</div><div style>there is only 1 empty message before receiving "hello". and if it is between zeromq2.2 and zeromq2.2. the result is the same to between zerom4.0.3 and zeromq4.0.3....</div>
<div style>I want to know if it is expected to this result? if like this, I think my updating one peer from zeromq2.2 to zeromq4.0.3 and the other peer retains zerom2.2, when zeromq4.0.3 send message to zerom2.2 peer, my application cannot explain the message. Or any problem my usage? thanks...</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Nov 24, 2013 at 7:37 PM, Pieter Hintjens <span dir="ltr"><<a href="mailto:ph@imatix.com" target="_blank">ph@imatix.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
Sorry for the slow response.<br>
<br>
So there are some problems with your test case.<br>
<br>
- zmq_send in ZMQ/2.x sends a zmq_msg_t structure, not a memory buffer<br>
- the ROUTER socket will return an identity blob as first part; you<br>
cannot print this as a string<br>
<br>
When I fix these problems and run the test case, it crashes as follows:<br>
<br>
Assertion failed: buffer_size == header_size (stream_engine.cpp:484)<br>
<br>
Which is issue 569, <a href="https://zeromq.jira.com/browse/LIBZMQ-569" target="_blank">https://zeromq.jira.com/browse/LIBZMQ-569</a>.<br>
<br>
I'll cut a new stable release with this fix. In the mean time you can<br>
build the stable version from <a href="https://github.com/zeromq/zeromq4-x" target="_blank">https://github.com/zeromq/zeromq4-x</a><br>
<span class="HOEnZb"><font color="#888888"><br>
-Pieter<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Fri, Nov 22, 2013 at 4:05 PM, 舒友村 <<a href="mailto:shuyoucun@bwstor.com.cn">shuyoucun@bwstor.com.cn</a>> wrote:<br>
> Hi , The following is my test case.<br>
> The peer installed zeromq2.2:<br>
> int main (void)<br>
> {<br>
>     //  Socket to talk to clients<br>
>     void *context = zmq_init (1);<br>
>     void *responder = zmq_socket (context, ZMQ_DEALER);<br>
>     int rc = zmq_connect (responder, "tcp://<a href="http://10.10.19.154:5555" target="_blank">10.10.19.154:5555</a>");<br>
>     assert (rc == 0);<br>
><br>
>     char buffer [10];<br>
>     zmq_send(responder, "hello", 0);<br>
>     sleep(10);<br>
>     return 0;<br>
> }<br>
><br>
> The peer installed zeromq4.0.1<br>
> int main (void)<br>
> {<br>
> void *context = zmq_init(1);<br>
> void *responder = zmq_socket (context, ZMQ_ROUTER);<br>
> int rc = zmq_bind (responder, "tcp://*:5555");<br>
> assert (rc == 0);<br>
><br>
> while (1) {<br>
> char buffer [10];<br>
> memset(buffer, 0, 10);<br>
> zmq_recv (responder, buffer,10, 0);<br>
> printf ("%s\n", buffer);<br>
> sleep (1);          //  Do some 'work'<br>
> }<br>
> return 0;<br>
> }<br>
> when connecting ,the crash happened in the peer which installed<br>
> zeromq4.0.1..Just like the following.<br>
> Assertion failed: buffer_size == header_size (stream_engine.cpp:485)<br>
> Aborted<br>
> Thanks...<br>
><br>
><br>
> On Fri, Nov 22, 2013 at 8:12 PM, Pieter Hintjens <<a href="mailto:ph@imatix.com">ph@imatix.com</a>> wrote:<br>
>><br>
>> OK, can you show us some very simple code that causes the problem for<br>
>> you? Then I'll test this on various versions of ZMQ.<br>
>><br>
>> On Fri, Nov 22, 2013 at 3:55 AM, 舒友村 <<a href="mailto:shuyoucun@bwstor.com.cn">shuyoucun@bwstor.com.cn</a>> wrote:<br>
>> > Hi, Sorry, I donot understand "test off libzmq master" clearly. I have<br>
>> > do<br>
>> > the test: used zeromq3.2.4 as the ROUTER peer, it doest crash when<br>
>> > DEALER<br>
>> > peer connect to ROUTER peer, but the ROUTER socket receive nothing from<br>
>> > DEALER peer when use zmq_send() to send messages. Does not the<br>
>> > zeromq3.2.4<br>
>> > support to communicate wtih zeromq2.2? Thanks..<br>
>> ><br>
>> ><br>
>> > On Thu, Nov 21, 2013 at 11:36 PM, Pieter Hintjens <<a href="mailto:ph@imatix.com">ph@imatix.com</a>> wrote:<br>
>> >><br>
>> >> There was a bug in ZeroMQ 4.0.1 which might be causing this. Could you<br>
>> >> test off libzmq master and tell us if it still crashes?<br>
>> >><br>
>> >> On Thu, Nov 21, 2013 at 4:31 PM, 舒友村 <<a href="mailto:shuyoucun@bwstor.com.cn">shuyoucun@bwstor.com.cn</a>> wrote:<br>
>> >> > HI, I used the DEALER and ROUTER sockets. when the DEALER socket<br>
>> >> > (zeromq2.2<br>
>> >> > )connect to ROUTER(zeromq4.0.1), the abort happened in handshake when<br>
>> >> > connecting.I donot know whether it is not support this usage.Thanks..<br>
>> >> ><br>
>> >> ><br>
>> >> > On Thu, Nov 21, 2013 at 6:48 PM, Pieter Hintjens <<a href="mailto:ph@imatix.com">ph@imatix.com</a>><br>
>> >> > wrote:<br>
>> >> >><br>
>> >> >> Hi, what socket types are you using on each side?<br>
>> >> >><br>
>> >> >> -Pieter<br>
>> >> >> _______________________________________________<br>
>> >> >> zeromq-dev mailing list<br>
>> >> >> <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
>> >> >> <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > --<br>
>> >> ><br>
>> >> > best!<br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > 舒友村<br>
>> >> ><br>
>> >> > _______________________________________________<br>
>> >> > zeromq-dev mailing list<br>
>> >> > <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
>> >> > <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
>> >> ><br>
>> >><br>
>> >><br>
>> >><br>
>> >> --<br>
>> >> -<br>
>> >> Pieter Hintjens<br>
>> >> CEO of iMatix.com<br>
>> >> Founder of ZeroMQ community<br>
>> >> blog: <a href="http://hintjens.com" target="_blank">http://hintjens.com</a><br>
>> >> _______________________________________________<br>
>> >> zeromq-dev mailing list<br>
>> >> <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
>> >> <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> > --<br>
>> ><br>
>> > best!<br>
>> ><br>
>> ><br>
>> ><br>
>> > 舒友村<br>
>> ><br>
>> > _______________________________________________<br>
>> > zeromq-dev mailing list<br>
>> > <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
>> > <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
>> ><br>
>><br>
>><br>
>><br>
>> --<br>
>> -<br>
>> Pieter Hintjens<br>
>> CEO of iMatix.com<br>
>> Founder of ZeroMQ community<br>
>> blog: <a href="http://hintjens.com" target="_blank">http://hintjens.com</a><br>
>> _______________________________________________<br>
>> zeromq-dev mailing list<br>
>> <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
>> <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
><br>
><br>
><br>
><br>
> --<br>
><br>
> best!<br>
><br>
><br>
><br>
> 舒友村<br>
><br>
> _______________________________________________<br>
> zeromq-dev mailing list<br>
> <a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
> <a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
><br>
<br>
<br>
<br>
--<br>
-<br>
Pieter Hintjens<br>
CEO of iMatix.com<br>
Founder of ZeroMQ community<br>
blog: <a href="http://hintjens.com" target="_blank">http://hintjens.com</a><br>
_______________________________________________<br>
zeromq-dev mailing list<br>
<a href="mailto:zeromq-dev@lists.zeromq.org">zeromq-dev@lists.zeromq.org</a><br>
<a href="http://lists.zeromq.org/mailman/listinfo/zeromq-dev" target="_blank">http://lists.zeromq.org/mailman/listinfo/zeromq-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><p><span style="color:rgb(13,13,13)">best!</span></p>

<p><span lang="EN-US" style="font-family:"Calibri","sans-serif";color:#0d0d0d"> </span></p>

<font color="#0d0d0d" face="宋体" size="3">舒友村</font>
</div>