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
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev