Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZMQ_UNBIND(3)			  0MQ Manual			 ZMQ_UNBIND(3)

NAME
       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.

       Additionally the	incoming message queue associated with the endpoint
       will be discarded. This means that after	unbinding an endpoint it is
       possible	to received messages originating from that same	endpoint if
       they were already present in the	incoming message queue before
       unbinding.

       The endpoint argument is	as described in	zmq_bind(3)

   Unbinding wild-card address from a socket
       When wild-card *	endpoint (described in zmq_tcp(7), zmq_ipc(7),
       zmq_udp(7) and zmq_vmci(7)) was used in zmq_bind(), the caller should
       use real	endpoint 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.

       ENOENT
	   The endpoint	supplied was not previously bound.

EXAMPLES
       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);

NOTE
       Note that while the implementation is similar to	zmq_disconnect(), the
       semantics are different and the two functions should not	be used
       interchangeably.	Bound sockets should be	unbound, and connected sockets
       should be disconnected.

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
       http://www.zeromq.org/docs:contributing.

0MQ 4.3.5			  10/09/2023			 ZMQ_UNBIND(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_unbind&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help