1NN_DEVICE(3) nanomsg 1.1.5 NN_DEVICE(3)
2
3
4
6 nn_device - start a device
7
9 #include <nanomsg/nn.h>
10
11 int nn_device (int s1, int s2);
12
14 Starts a device to forward messages between two sockets. If both
15 sockets are valid, nn_device function loops and sends any messages
16 received from s1 to s2 and vice versa. If only one socket is valid and
17 the other is negative, nn_device works in a "loopback" mode — it loops
18 and sends any messages received from the socket back to itself.
19
20 To break the loop and make nn_device function exit use the nn_term(3)
21 function.
22
24 The function loops until it hits an error. In such a case it returns -1
25 and sets errno to one of the values defined below.
26
28 EBADF
29 One of the provided sockets is invalid.
30
31 EINVAL
32 Either one of the socket is not an AF_SP_RAW socket; or the two
33 sockets don’t belong to the same protocol; or the directionality of
34 the sockets doesn’t fit (e.g. attempt to join two SINK sockets to
35 form a device).
36
37 EINTR
38 The operation was interrupted by delivery of a signal.
39
40 ETERM
41 The library is terminating.
42
44 int s1 = nn_socket (AF_SP_RAW, NN_REQ);
45 nn_bind (s1, "tcp://127.0.0.1:5555");
46 int s2 = nn_socket (AF_SP_RAW, NN_REP);
47 nn_bind (s2, "tcp://127.0.0.1:5556");
48 nn_device (s1, s2);
49
51 nn_socket(3) nn_term(3) nanomsg(7)
52
54 Martin Sustrik <sustrik@250bpm.com>
55
56
57
58 2023-07-20 NN_DEVICE(3)