ZMQ_CONNECT(3) 0MQ Manual ZMQ_CONNECT(3)NAMEzmq_connect - create outgoing connection from socket
SYNOPSIS
int zmq_connect (void *socket, const char *endpoint);
DESCRIPTION
The zmq_connect() function connects the socket to an 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 connect 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_inproc(7)
pgm, epgm
reliable multicast transport using PGM, see zmq_pgm(7)
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).
Note
for most transports and socket types the connection is not
performed immediately but as needed by 0MQ. Thus a successful call
to zmq_connect() does not 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
zmq_bind() before calling zmq_connect(). The second exception are
ZMQ_PAIR sockets, which do not automatically reconnect to
endpoints.
Note
following a zmq_connect(), for socket types except for ZMQ_ROUTER,
the socket enters its normal ready state. By contrast, following a
zmq_bind() alone, the socket enters a mute state in which the
socket blocks or drops messages according to the socket type, as
defined in zmq_socket(3). A ZMQ_ROUTER socket enters its normal
ready state for a specific peer only when handshaking is complete
for that peer, which may take an arbitrary time.
RETURN VALUE
The zmq_connect() 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.
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
Connecting a subscriber socket to an in-process and a TCP transport.
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
assert (socket);
/* 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);
SEE ALSOzmq_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.0.1 03/10/2014 ZMQ_CONNECT(3)