int nng_ctx_open(nng_ctx *ctxp, nng_socket s);
nng_ctx_open() function creates a separate context to be used with
the socket s,
and returns it at the location pointed by ctxp.
|Not every protocol supports creation of separate contexts.
Contexts allow the independent and concurrent use of stateful operations using the same socket. For example, two different contexts created on a rep socket can each receive requests, and send replies to them, without any regard to or interference with each other.
TIP: Using contexts is an excellent way to write simpler concurrent applications, while retaining the benefits of the protocol-specific advanced processing, avoiding the need to bypass that with raw mode sockets.
|Use of contexts with raw mode sockets is nonsensical, and not supported.
This function returns 0 on success, and non-zero otherwise.
Insufficient memory is available.
The protocol does not support separate contexts, or the socket was opened in raw mode.