[zeromq-dev] Reconnect doesn't work for Push-pull socket if push server goes down unsafely

Sunil khatri sunil.ncb at gmail.com
Fri Sep 28 14:58:02 CEST 2012


Scenario:
Start a push server bind on tcp transport. Start a pull client which
connects to above tcp endpoint. Wait for 5 seconds. Kill the server. Now if
I restart the server again client is not re-connecting.
When I check netstat -antp, connection remains in close_wait state.

This case works fine with version-2.2.
Test code:

====
///zmq_s.cpp
#include <zmq.hpp>

//using namespace zmq;
zmq::context_t g_zmqcontext(1);
int main()
{
        try{
        zmq::socket_t s1(g_zmqcontext, ZMQ_PUSH);
        s1.bind("tcp://*:5556");
        int i=0;
                while(1){
                        char str[100];
                        sprintf(str, "Hi-%d", i++);
                        zmq::message_t msg(strlen(str));
                        memcpy(msg.data(), str, strlen(str)+1);
                        puts("Sending message");
                        s1.send(msg);
                        puts("Send done");
                }
        }catch(zmq::error_t &e){
                printf("Error :%d-%s\n", e.num(), e.what()); fflush(stdout);
        }
}
--------------------

//zmq_c.cpp
#include <zmq.hpp>

zmq::context_t g_zmqContext(1);
int main(){
        try{
                zmq::socket_t s2(g_zmqContext, ZMQ_PULL);
                s2.connect("tcp://127.0.0.1:5556");
                while(1){
                        zmq::message_t msg;
                        puts("Waiting for message");
                        s2.recv(&msg);
                        printf("Msg received: %s\n", msg.data());
fflush(stdout);
                        usleep(1);
                }
        }catch(zmq::error_t &e){
                printf("Err:%s-%d\n", e.num(), e.what()); fflush(stdout);
        }
}

==============

Regards
Sunil Kharti
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20120928/1f2cb179/attachment.html>


More information about the zeromq-dev mailing list