If the client closes its socket, the server will drop the reply, I think. You won't get an error in the server.
On 20 Sep 2010 20:43, "yy l" <[email protected]> wrote: > Thank you very much! > > But what I ask is, simply to say, if must use TCP REQ/REP pattern, > > the client send a REQ and then close socket and don't connect the server > again, > > the server receive the REQ and handle it, send the REP, but now the > client do not exist, > > will the server's zmq resend the REP or release the resource associated with > the tcp connection? > > > > > 2010/9/20 Chuck Remes <[email protected]> > >> On Sep 19, 2010, at 8:00 AM, liyongyan wrote: >> >> Can I ask another question? >> I use the zmq_poll() in REQ-REP pattern >> When the client send a Req and then wait for res from the server , >> but the Res can not reach the client in time for some reasons(for example, >> handle the Req for a long time), >> then the client wait timeout, now how to handle the socket? >> If I call the zmq_close() and next time when send a Req I build another >> socket and connect server again, >> what happen after the server send the delayed Res? What will server do in >> ZMQ with the former connection to the client? >> Will the server release the related resource assigned to the former >> connection? >> >> >> Timeouts are not handled by 0mq. You must create the logic in your >> application to deal with these issues yourself. >> >> This may be covered in the user guide. Check >> http://zguide.zeromq.org/chapter:1 >> >> If not, here is how I would suggest you try to handle this in your >> application. >> >> 1. Use a XREP socket on your server. The XRE? sockets do *not* enforce a >> strict send/recv ordering like the REQ/REP sockets. >> >> 2. After you call zmq_close() on the original REQ socket that timed out, >> make sure that the *new* REQ socket you build has the same identity as the >> old one. I *think* 0mq will honor that (use zmq_setsockopt(IDENTITY, x) to >> set it) for routing a delayed response back to you. Again, your application >> will need to know how to handle a delayed response. >> >> 3. When you call zmq_close() on a socket now, any messages in progress will >> be dropped. 0mq releases all resources associated with the now dead socket. >> >> cr >> >> >> >> _______________________________________________ >> zeromq-dev mailing list >> [email protected] >> http://lists.zeromq.org/mailman/listinfo/zeromq-dev >> >>
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
