zmq_unbind (3) Linux Manual Page
zmq_unbind – Stop accepting connections on a socket
Synopsis
int zmq_unbind(void *socket, const char *endpoint);
Description
The zmq_unbind() function shall unbind a socket specified by the socket argument from the endpoint specified by the endpoint argument.
The endpoint argument is as described in zmq_bind(3)
Unbinding wild-card addres from a socket
When wild-card * endpoint (described in zmq_tcp(7) and zmq_ipc(7)) was used in zmq_bind(), the caller should use real endpoind obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket.
Return Value
The zmq_unbind() function shall return zero if successful. Otherwise it shall return -1 and set errno to one of the values defined below.
Errors
EINVAL
- The endpoint supplied is invalid.
ETERM
- The 0MQ context associated with the specified socket was terminated.
ENOTSOCK
- The provided socket was invalid.
Examples
Unbind a subscriber socket from a TCP transport.
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket(context, ZMQ_SUB);
assert(socket);
/* Bind it to the system-assigned ephemeral port using a TCP transport */
rc = zmq_bind(socket, "tcp://127.0.0.1:*");
assert(rc == 0);
/* Obtain real endpoint */
const size_t buf_size = 32;
char buf[buf_size];
rc = zmq_getsockopt(socket, ZMQ_LAST_ENDPOINT, buf, (size_t *)&buf_size);
assert(rc == 0);
/* Unbind socket by real endpoint */
rc = zmq_unbind(socket, buf);
assert(rc == 0);
Unbind wild-card * binded socket.
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket(context, ZMQ_SUB);
assert(socket);
/* Bind it to the system-assigned ephemeral port using a TCP transport */
rc = zmq_bind(socket, "tcp://127.0.0.1:*");
assert(rc == 0);
/* Obtain real endpoint */
const size_t buf_size = 32;
char buf[buf_size];
rc = zmq_getsockopt(socket, ZMQ_LAST_ENDPOINT, buf, (size_t *)&buf_size);
assert(rc == 0);
/* Unbind socket by real endpoint */
rc = zmq_unbind(socket, buf);
assert(rc == 0);
See Also
zmq_bind(3) zmq_socket(3) zmq(7)
Authors
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at m[blue]http://www.zeromq.org/docs:contributingm[].
