This documentation is for version v1.3.0 of NNG, but the latest released version is v1.8.0. see the documentation for v1.8.0 for the most up-to-date information.


#include <nng/nng.h>

int nng_close(nng_socket s);


The nng_close() function closes the supplied socket, s. Messages that have been submitted for sending may be flushed or delivered, depending upon the transport.

Further attempts to use the socket after this call returns will result in NNG_ECLOSED. Threads waiting for operations on the socket when this call is executed may also return with an NNG_ECLOSED result.

Closing the socket while data is in transmission will likely lead to loss of that data. There is no automatic linger or flush to ensure that the socket send buffers have completely transmitted. It is recommended to wait a brief period after calling nng_send() or similar functions, before calling this function.


This function returns 0 on success, and non-zero otherwise.



The socket s is already closed or was never opened.