From 354efc513fdb4096f8830e6c2e3e8f1311303e61 Mon Sep 17 00:00:00 2001 From: Martin Lucina Date: Wed, 10 Feb 2010 16:18:46 +0100 Subject: Convert documentation to AsciiDoc --- doc/zmq_socket.txt | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 doc/zmq_socket.txt (limited to 'doc/zmq_socket.txt') diff --git a/doc/zmq_socket.txt b/doc/zmq_socket.txt new file mode 100644 index 0000000..6cfc726 --- /dev/null +++ b/doc/zmq_socket.txt @@ -0,0 +1,126 @@ +zmq_socket(3) +============= + + +NAME +---- +zmq_socket - creates 0MQ socket + + +SYNOPSIS +-------- +'void *zmq_socket (void *context, int type);' + + +DESCRIPTION +----------- +Open a socket within the specified 'context'. To create a context, use +'zmq_init' function. 'type' argument can be one of the values defined below. +Note that each socket is owned by exactly one thread (the one that it was +created from) and should not be used from any other thread. + +*ZMQ_P2P*:: +Socket to communicate with a single peer. Allows for only a single connect +or a single bind. There's no message routing or message filtering involved. ++ +Compatible peer sockets: ZMQ_P2P. + +*ZMQ_PUB*:: +Socket to distribute data. Recv function is not implemented for this socket +type. Messages are distributed in fanout fashion to all the peers. ++ +Compatible peer sockets: ZMQ_SUB. + +*ZMQ_SUB*:: +Socket to subscribe for data. Send function is not implemented for this socket +type. Initially, socket is subscribed for no messages. Use ZMQ_SUBSCRIBE option +to specify which messages to subscribe for. ++ +Compatible peer sockets: ZMQ_PUB. + +*ZMQ_REQ*:: +Socket to send requests and receive replies. Requests are load-balanced among +all the peers. This socket type allows only an alternated sequence of send's +and recv's. ++ +Compatible peer sockets: ZMQ_REP, ZMQ_XREP. + +*ZMQ_REP*:: +Socket to receive requests and send replies. This socket type allows only an +alternated sequence of recv's and send's. Each send is routed to the peer that +issued the last received request. ++ +Compatible peer sockets: ZMQ_REQ, ZMQ_XREQ. + +*ZMQ_XREQ*:: +Special socket type to be used in request/reply middleboxes such as +linkzmq:zmq_queue[7]. Requests forwarded using this socket type should be +tagged by a proper prefix identifying the original requester. Replies received +by this socket are tagged with a proper postfix that can be use to route the +reply back to the original requester. ++ +Compatible peer sockets: ZMQ_REP, ZMQ_XREP. + +*ZMQ_XREP*:: +Special socket type to be used in request/reply middleboxes such as +linkzmq:zmq_queue[7]. Requests received using this socket are already properly +tagged with prefix identifying the original requester. When sending a reply via +XREP socket the message should be tagged with a prefix from a corresponding +request. ++ +Compatible peer sockets: ZMQ_REQ, ZMQ_XREQ. + +*ZMQ_UPSTREAM*:: +Socket to receive messages from up the stream. Messages are fair-queued from +among all the connected peers. Send function is not implemented for this socket +type. ++ +Compatible peer sockets: ZMQ_DOWNSTREAM. + +*ZMQ_DOWNSTREAM*:: +Socket to send messages down stream. Messages are load-balanced among all the +connected peers. Recv function is not implemented for this socket type. ++ +Compatible peer sockets: ZMQ_UPSTREAM. + + +RETURN VALUE +------------ +Function returns socket handle is successful. Otherwise it returns NULL and +sets errno to one of the values below. + + +ERRORS +------ +*EINVAL*:: + invalid socket type. + +*EMTHREAD*:: + the number of application threads allowed to own 0MQ sockets was exceeded. + See 'app_threads' parameter to 'zmq_init' function. + + +EXAMPLE +------- +---- +void *s = zmq_socket (context, ZMQ_PUB); +assert (s); +int rc = zmq_bind (s, "tcp://192.168.0.1:5555"); +assert (rc == 0); +---- + + +SEE ALSO +-------- +linkzmq:zmq_init[3] +linkzmq:zmq_setsockopt[3] +linkzmq:zmq_bind[3] +linkzmq:zmq_connect[3] +linkzmq:zmq_send[3] +linkzmq:zmq_flush[3] +linkzmq:zmq_recv[3] + + +AUTHOR +------ +Martin Sustrik -- cgit v1.2.3