ØMQ Manual - ØMQ/4.1.7
zmq_unbind - Stop accepting connections on a socket
int zmq_unbind (void *socket, const char *endpoint);
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.
The zmq_unbind() function shall return zero if successful. Otherwise it shall return -1 and set errno to one of the values defined below.
- The endpoint supplied is invalid.
- The ØMQ context associated with the specified socket was terminated.
- The provided socket was invalid.
Unbind a subscriber socket from a tcp transport
/* Create a ZMQ_SUB socket */ void *socket = zmq_socket (context, ZMQ_SUB); assert (socket); /* Connect it to the host server001, port 5555 using a TCP transport */ rc = zmq_bind (socket, "tcp://127.0.0.1:5555"); assert (rc == 0); /* Disconnect from the previously connected endpoint */ rc = zmq_unbind (socket, "tcp://127.0.0.1:5555"); 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);
This page was written by the ØMQ community. To make a change please read the ØMQ Contribution Policy at http://www.zeromq.org/docs:contributing.