An nng_socket
is a handle to an underlying socket object.
All communication between the application and remote Scalability Protocol
peers is done through sockets.
A given socket can have multiple dialers (nng_dialer
)
and/or listeners (nng_listener
), and multiple
pipes (nng_pipe
), and
may be connected to multiple transports at the same time.
However, a given socket will have exactly one protocol associated with it,
and is responsible for any state machines or other protocol-specific logic.
Important
|
The nng_socket structure is always passed by value (both
for input parameters and return values), and should be treated opaquely.
Passing structures this way gives the compiler a chance to perform
accurate type checks in functions passing values of this type.
|
Each nng_socket
is created by a protocol-specific constructor, such as
nng_rep_open()
.
When the socket is no longer needed, it can be closed with
nng_close()
.