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

# nng\_socket\_id(3)

return numeric socket identifier

## NAME

nng\_socket\_id - return numeric socket identifier

## SYNOPSIS

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

## DESCRIPTION

The `nng_socket_id()` function returns a positive identifier for the socket *s*, if it is valid. Otherwise it returns `-1`.

**Note**\

A socket is considered valid if it was ever opened with a protocol constructor, such as the `nng_req0_open()` function. Sockets that are allocated on the stack or statically should be initialized with the macro `NNG_SOCKET_INITIALIZER` to ensure that they cannot be confused with a valid socket before they are opened.

## RETURN VALUES

This function returns the positive value for the socket identifier, or `-1` if the socket is invalid.

## ERRORS

None.

## SEE ALSO

[nng\_socket(5)](/nng_socket/5.md), [nng(7)](/nng/7.md)
