zmq_connect - create outgoing connection from socket
int zmq_connect (void *socket, const char
function connects the socket
and then accepts incoming connections on that endpoint.
is a string consisting of a transport
:// followed by
. The transport
specifies the underlying protocol to
use. The address
specifies the transport-specific address to connect
0MQ provides the the following transports:
unicast transport using TCP, see zmq_tcp(7)
local inter-process communication transport, see
local in-process (inter-thread) communication transport,
reliable multicast transport using PGM, see
virtual machine communications interface (VMCI), 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
for most transports and socket types the connection is not performed immediately
but as needed by 0MQ. Thus a successful call to zmq_connect()
mean that the connection was or could actually be established. Because of
this, for most transports and socket types the order in which a server
socket is bound and a client
socket is connected to it does not matter.
The first exception is when using the inproc:// transport: you must call
before calling zmq_connect()
. The second exception
sockets, which do not automatically reconnect to
following a zmq_connect()
, for socket types except for ZMQ_ROUTER, the
socket enters its normal ready
state. By contrast, following a
alone, the socket enters a mute
state in which the
socket blocks or drops messages according to the socket type, as defined in
(3). A ZMQ_ROUTER socket enters its normal ready
for a specific peer only when handshaking is complete for that peer, which may
take an arbitrary time.
function returns zero if successful. Otherwise it
returns -1 and sets errno
to one of the values defined below.
The endpoint supplied is invalid.
The requested transport protocol is not
The requested transport protocol is not compatible
with the socket type.
The 0MQ context associated with the specified
socket was terminated.
The provided socket was invalid.
No I/O thread is available to accomplish the task.
Connecting a subscriber socket to an in-process and a TCP transport
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
/* Connect it to an in-process transport with the address 'my_publisher' */
int rc = zmq_connect (socket, "inproc://my_publisher");
assert (rc == 0);
/* Connect it to the host server001, port 5555 using a TCP transport */
rc = zmq_connect (socket, "tcp://server001:5555");
assert (rc == 0);
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