= 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 (((protocol, _rep_))) The ((_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 _rep_ protocol is the replier side, and the <> protocol is the requester side. === Socket Operations The <> call creates a replier 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 <>) 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 _rep_ protocol has no protocol-specific options. ==== Protocol Headers (((backtrace))) The _rep_ protocol uses a _backtrace_ in the header. This is more fully documented in the <> manual. == SEE ALSO <>, <>, <>