Provided by: libzmq3-dev_4.3.2-2ubuntu1_amd64 bug

NAME

       zmq_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)

       vmci
           virtual machine communications interface (VMCI), see zmq_vmci(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 ZMQ_PAIR sockets are an exception, as they 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.

           Note
           for some socket types, multiple connections to the same endpoint don’t really make
           sense (see https://github.com/zeromq/libzmq/issues/788). For those socket types, any
           attempt to connect to an already connected endpoint is silently ignored (i.e., returns
           zero). This behavior applies to ZMQ_DEALER, ZMQ_SUB, ZMQ_PUB, and ZMQ_REQ socket
           types.

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 ALSO

       zmq_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.