The zmq_bind() function binds the socket to a local endpoint and then accepts incoming connections on that endpoint.
The endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to bind to.
0MQ provides the the following transports:
unicast transport using TCP, see
local inter-process communication transport, see
local in-process (inter-thread) communication transport, see
reliable multicast transport using PGM, see
Every 0MQ socket type except ZMQ_PAIR 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 and tcp transports accept wildcard addresses: see zmq_ipc(7) and zmq_tcp(7) for details.
the address syntax may be different for zmq_bind() and zmq_connect() especially for the tcp, pgm and epgm transports.
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, the socket enters the ready state.