summaryrefslogtreecommitdiff
path: root/docs/ref/compat/nn_bind.adoc
blob: 49438bd39d1657a217decd2ee273740ed40cfa24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
## nn_bind

Accept connections from remote peers (compatible API).

### Synopsis

```c
#include <nanomsg/nn.h>

int nn_bind(int sock, const char *url)
```

### Description

The `nn_bind` function arranges for the socket _sock_ to accept connections at the address specified by _url_.
An identifier for this socket's association with the _url_ is returned to the caller on success.
This identfier can be used with xref:nn_shutdown.adoc[`nn_shutdown`] to remove the association later.

NOTE: The bind operation is performed asynchronously, and may not have completed before this function returns control to the caller.

IMPORTANT: Only transports supported by legacy _libnanomsg_ may be used with this function.
In particular, only the schemes `tcp://`, `ipc://`, `inproc://`, and `ws://` are supported with this function.

### Return Values

This function returns a positive identifier on success, and -1 on error.

### Errors

[horizontal]
`EADDRINUSE`:: The address specified by _url_ is already in use.
`EADDRNOTAVAIL`:: The address specified by _url_ is not available.
`EBADF`:: The socket _sock_ is not open.
`EINVAL`:: An invalid _url_ was supplied.

### See Also

xref:nn_connect.adoc[nn_connect],
xref:nn_errno.adoc[nn_errno],
xref:nn_shutdown.adoc[nn_shutdown],
xref:nn_socket.adoc[nn_socket]