zmq_close - close 0MQ socket
int zmq_close (void '*socket');
The zmq_close() function shall destroy the socket referenced by the 'socket' argument. Any outstanding messages physically received from the network but not yet received by the application with zmq_recv() shall be discarded. The behaviour for discarding messages sent by the application with zmq_send() but not yet physically transferred to the network depends on the value of the ZMQ_LINGER socket option for the specified 'socket'.
zmq_close() must be called exactly once for each socket. If it is never called, zmq_ctx_term() will block forever. If it is called multiple times for the same socket or if 'socket' does not point to a socket, the behaviour is undefined.
|The default setting of ZMQ_LINGER does not discard unsent messages; this behaviour may cause the application to block when calling zmq_ctx_term(). For details refer to zmq_setsockopt and zmq_ctx_term|
|This API will complete asynchronously, so not everything will be deallocated after it returns. See above for details about linger.|
The zmq_close() function shall return zero if successful. Otherwise it shall
-1 and set 'errno' to one of the values defined below.
The provided 'socket' was NULL.
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at https://zeromq.org/how-to-contribute/.