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

  
 
  

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

NAME
     zmq_bind - accept incoming connections on a socket

SYNOPSIS
     int zmq_bind (void *socket, const char *endpoint);

DESCRIPTION
     The  zmq_bind()  function binds the socket to a local endpoint and then ac-
     cepts incoming connections on that endpoint.

     The endpoint is a string consisting of a transport:// followed  by  an  ad-
     dress.  The transport specifies the underlying protocol to use. The address
     specifies the transport-specific address to bind to.

     0MQ provides the the following transports:

     tcp
	 unicast transport using TCP, see zmq_tcp(7)

     ipc
	 local inter-process communication transport, see zmq_ipc(7)

     inproc
	 local in-process (inter-thread) communication	transport,  see  zmq_in-
	 proc(7)

     pgm, epgm
	 reliable multicast transport using PGM, see zmq_pgm(7)

     vmci
	 virtual machine communications interface (VMCI), see zmq_vmci(7)

     udp
	 unreliable unicast and multicast using UDP, see zmq_udp(7)

     Every  0MQ socket type except ZMQ_PAIR and ZMQ_CHANNEL supports one-to-many
     and many-to-one semantics. The precise semantics depend on the socket  type
     and are defined in zmq_socket(3).

     The  ipc,	tcp,  vmci  and  udp  transports  accept wildcard addresses: see
     zmq_ipc(7), zmq_tcp(7), zmq_vmci(7) and zmq_udp(7) for details.

	 Note

	 the address syntax may be different for  zmq_bind()  and  zmq_connect()
	 especially for the tcp, pgm and epgm transports.

	 Note

	 following  a zmq_bind(), the socket enters a mute state unless or until
	 at least one incoming or outgoing connection is made,	at  which  point
	 the  socket  enters a ready state. In the mute state, the socket blocks
	 or  drops  messages  according  to  the  socket  type,  as  defined  in
	 zmq_socket(3).  By  contrast,	following  a  libzmq:zmq_connect[3], the
	 socket enters the ready state.

RETURN VALUE
     The zmq_bind() function returns zero if successful. Otherwise it returns -1
     and sets errno to one of the values defined below.

ERRORS
     EINVAL
	 The endpoint supplied is invalid.

     EPROTONOSUPPORT
	 The requested transport protocol is not supported.

     ENOCOMPATPROTO
	 The requested transport protocol is  not  compatible  with  the  socket
	 type.

     EADDRINUSE
	 The requested address is already in use.

     EADDRNOTAVAIL
	 The requested address was not local.

     ENODEV
	 The requested address specifies a nonexistent interface.

     ETERM
	 The 0MQ context associated with the specified socket was terminated.

     ENOTSOCK
	 The provided socket was invalid.

     EMTHREAD
	 No I/O thread is available to accomplish the task.

EXAMPLE
     Binding a publisher socket to an in-process and a TCP transport.

	 /* Create a ZMQ_PUB socket */
	 void *socket = zmq_socket (context, ZMQ_PUB);
	 assert (socket);
	 /* Bind it to a in-process transport with the address 'my_publisher' */
	 int rc = zmq_bind (socket, "inproc://my_publisher");
	 assert (rc == 0);
	 /* Bind it to a TCP transport on port 5555 of the 'eth0' interface */
	 rc = zmq_bind (socket, "tcp://eth0:5555");
	 assert (rc == 0);

SEE ALSO
     zmq_connect(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_BIND(3)

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

home | help