zmq_connect.txt 2.64 KB
Newer Older
1 2 3 4 5 6
zmq_connect(3)
==============


NAME
----
7
zmq_connect - connect a socket
8 9 10 11


SYNOPSIS
--------
12
*int zmq_connect (void '*socket', const char '*endpoint');*
13 14 15 16


DESCRIPTION
-----------
Martin Lucina's avatar
Martin Lucina committed
17
The _zmq_connect()_ function shall connect the socket referenced by the
18
'socket' argument to the endpoint specified by the 'endpoint' argument.
19

20 21 22
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
Martin Lucina's avatar
Martin Lucina committed
23 24 25 26
the underlying transport protocol selected.

The following transports are defined:

27 28 29 30
'inproc':: local in-process (inter-thread) communication transport, see linkzmq:zmq_inproc[7]
'ipc':: local inter-process communication transport, see linkzmq:zmq_ipc[7]
'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7]
'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7]
Martin Lucina's avatar
Martin Lucina committed
31

32 33 34 35 36
With the exception of 'ZMQ_PAIR' sockets, a single socket may be connected to
multiple endpoints using _zmq_connect()_, while simultaneously accepting
incoming connections from multiple endpoints bound to the socket using
_zmq_bind()_. Refer to linkzmq:zmq_socket[3] for a description of the exact
semantics involved when connecting or binding a socket to multiple endpoints.
Martin Lucina's avatar
Martin Lucina committed
37 38 39 40

NOTE: The connection will not be performed immediately but as needed by 0MQ.
Thus a successful invocation of _zmq_connect()_ does not indicate that a
physical connection was or can actually be established.
41 42 43 44


RETURN VALUE
------------
Martin Lucina's avatar
Martin Lucina committed
45
The _zmq_connect()_ function shall return zero if successful. Otherwise it
Martin Lucina's avatar
Martin Lucina committed
46
shall return `-1` and set 'errno' to one of the values defined below.
47 48 49 50 51


ERRORS
------
*EPROTONOSUPPORT*::
Martin Lucina's avatar
Martin Lucina committed
52
The requested 'transport' protocol is not supported.
53
*ENOCOMPATPROTO*::
Martin Lucina's avatar
Martin Lucina committed
54
The requested 'transport' protocol is not compatible with the socket type.
55
*ETERM*::
56
The 0MQ 'context' associated with the specified 'socket' was terminated.
57 58
*EFAULT*::
The provided 'socket' was not valid (NULL).
59 60 61 62


EXAMPLE
-------
Martin Lucina's avatar
Martin Lucina committed
63
.Connecting a subscriber socket to an in-process and a TCP transport
64
----
Martin Lucina's avatar
Martin Lucina committed
65 66 67
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
assert (socket);
68
/* Connect it to an in-process transport with the address 'my_publisher' */
Martin Lucina's avatar
Martin Lucina committed
69
int rc = zmq_connect (socket, "inproc://my_publisher");
70
assert (rc == 0);
Martin Lucina's avatar
Martin Lucina committed
71 72
/* Connect it to the host server001, port 5555 using a TCP transport */
rc = zmq_connect (socket, "tcp://server001:5555");
73 74 75 76 77 78 79 80 81 82 83
assert (rc == 0);
----


SEE ALSO
--------
linkzmq:zmq_bind[3]
linkzmq:zmq_socket[3]
linkzmq:zmq[7]


84 85 86 87
AUTHORS
-------
The 0MQ documentation was written by Martin Sustrik <sustrik@250bpm.com> and
Martin Lucina <mato@kotelna.sk>.