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

FreeBSD Manual Pages

  
 
  

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

NAME
       zmq_connect_peer	- create outgoing connection from socket and return
       the connection routing id in thread-safe	and atomic way.

SYNOPSIS
       uint32_t	zmq_connect_peer (void *socket,	const char *endpoint);

DESCRIPTION
       The zmq_connect_peer() function connects	a ZMQ_PEER socket to an
       endpoint	and then returns the endpoint routing_id.

       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.

       The function is supported only on the ZMQ_PEER socket type and would
       return 0	with errno set to ENOTSUP otherwise.

       The zmq_connect_peer() support 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)

       ws
	   unicast transport using WebSockets, see zmq_ws(7)

       wss
	   unicast transport using WebSockets over TLS,	see zmq_wss(7)

RETURN VALUE
       The zmq_connect_peer() function returns the peer	routing_id if
       successful. Otherwise it	returns	0 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 with ZMQ_PEER.

       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.

       ENOTSUP
	   The socket is not of	type ZMQ_PEER.

       EFAULT
	   The ZMQ_IMMEDIATE option is set on the socket.

EXAMPLE
       Connecting a peer socket	to a TCP transport and sending a message.

	   /* Create a ZMQ_SUB socket */
	   void	*socket	= zmq_socket (context, ZMQ_PEER);
	   assert (socket);
	   /* Connect it to the	host server001,	port 5555 using	a TCP transport	*/
	   uint32_t routing_id = zmq_connect (socket, "tcp://server001:5555");
	   assert (routing_id == 0);
	   /* Sending a	message	to the peer  */
	   zmq_msg_t msg;
	   int rc = zmq_msg_init_data (&msg, "HELLO", 5, NULL, NULL);
	   assert (rc == 0);
	   rc =	zmq_msg_set_routing_id (&msg, routing_id);
	   assert (rc == 0);
	   rc =	zmq_msg_send (&msg, socket, 0);
	   assert (rc == 5);
	   rc =	zmq_msg_close (&msg);
	   assert (rc == 0);

SEE ALSO
       zmq_connect(3) 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_PEER(3)

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

home | help