= nng_rep(7) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // NAME ---- nng_rep - reply protocol SYNOPSIS -------- [source,c] ---------- #include int nng_rep0_open(nng_socket *s); ---------- DESCRIPTION ----------- The _nng_rep_ protocol is one half of a request/reply pattern. In this pattern, a requester sends a message to one replier, who is expected to reply. The request is resent if no reply arrives, until a reply is received or the request times out. TIP: This protocol is useful in setting up RPC-like services. It is also "reliable", in that a the requester will keep retrying until a reply is received. The _nng_rep_ protocol is the replier side, and the <> protocol is the requester side. Socket Operations ~~~~~~~~~~~~~~~~~ The `nng_rep0_open()` call creates a requester socket. This socket may be used to receive messages (requests), and then to send replies. Generally a reply can only be sent after receiving a request. (Attempts to receive a message will result in `NNG_ESTATE` if there is no outstanding request.) Attempts to send on a socket with no outstanding requests will result in `NNG_ESTATE`. Raw mode sockets (set with `NNG_OPT_RAW`) ignore all these restrictions. Protocol Versions ~~~~~~~~~~~~~~~~~ Only version 0 of this protocol is supported. (At the time of writing, no other versions of this protocol have been defined.) Protocol Options ~~~~~~~~~~~~~~~~ The following protocol-specific options are available. `NNG_OPT_MAXTTL`:: Maximum time-to-live. This option is an integer value between 0 and 255, inclusive, and is the maximum number of "hops" that a message may pass through until it is discarded. The default value is 8. A value of 0 may be used to disable the loop protection, allowing an infinite number of hops. Protocol Headers ~~~~~~~~~~~~~~~~ The _nng_rep_ protocol uses a _backtrace_ in the header. This is more fully documented in the <> manual. SEE ALSO -------- <>, <>