SYNOPSIS

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

DESCRIPTION

The zmq_bind() function shall create an endpoint for accepting connections and bind it to the socket referenced by the socket argument.

The endpoint argument is a string consisting of two parts as follows: transport://address. The transport part specifies the underlying transport protocol to use. The meaning of the address part is specific to the underlying transport protocol selected.

The following transports are defined:

inproc

local in-process (inter-thread) communication transport, see zmq_inproc(7)

ipc

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

tcp

unicast transport using TCP, see zmq_tcp(7)

pgm, epgm

reliable multicast transport using PGM, see zmq_pgm(7)

ZeroMQ sockets support one-to-many and many-to-one semantics. With the exception of ZMQ_PAIR sockets every ZeroMQ socket type supports being bound with zmq_bind() as a singular endpoint or connecting with zmq_connect() as one of many endpoints. This allows combinations such as 1 ZMQ_REP to 100 ZMQ_REP and 100 ZMQ_REQ to 1 ZMQ_REP socket connections. Refer to zmq_socket(3) for a description of the exact semantics involved when connecting or binding a socket to multiple endpoints.

RETURN VALUE

The zmq_bind() 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.

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 ØMQ 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

AUTHORS

This ØMQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and Martin Lucina <mato@kotelna.sk>.