Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZMQ_CONNECT(3)			   0MQ Manual			  ZMQ_CONNECT(3)

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 ac-
     cepts incoming connections on that endpoint.

     The endpoint is a string consisting of a transport:// followed  by  an  ad-
     dress.  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_in-
	 proc(7)

     pgm, epgm
	 reliable multicast transport using PGM, see zmq_pgm(7)

     vmci
	 virtual machine communications interface (VMCI), see zmq_vmci(7)

     udp
	 unreliable unicast and multicast using UDP, see zmq_udp(7)

     Every  0MQ socket type except ZMQ_PAIR and ZMQ_CHANNEL 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_con-
	 nect()  does  not mean that the connection was or could actually be es-
	 tablished. Because of this, for most transports and  socket  types  the
	 order	in  which  a  server socket is bound and a client socket is con-
	 nected to it does not matter. The ZMQ_PAIR and ZMQ_CHANNEL 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  ap-
	 plies 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.

0MQ 4.3.5			   10/09/2023			  ZMQ_CONNECT(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_connect&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help