---
name: "nng_close"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_close"
---

# nng\_close(3)

close socket

## NAME

nng\_close - close socket

## SYNOPSIS

```
#include <nng/nng.h>
int nng_close(nng_socket s);
int nng_socket_close(nng_socket s);
```

## DESCRIPTION

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

The `nng_close()` function also does this, and is the old name for this function.  The `nng_close()` function is considered deprecated and may be removed in the next major release.

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.

**Note**\

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.

## RETURN VALUES

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

## ERRORS

`NNG_ECLOSED`

The socket *s* is already closed or was never opened.

## SEE ALSO

[nng\_strerror(3)](/nng_strerror/3.md), [nng\_options(5)](/nng_options/5.md), [nng\_socket(5)](/nng_socket/5.md), [nng(7)](/nng/7.md)
