nn_device(3) ============ NAME ---- nn_device - start a device SYNOPSIS -------- *#include * *int nn_device (int 's1', int 's2');* DESCRIPTION ----------- Starts a device to forward messages between two sockets. If both sockets are valid, _nn_device_ function loops and sends and messages received from 's1' to 's2' and vice versa. If only one socket is valid and the other is negative, _nn_device_ works in a "loopback" mode -- it loops and sends any messages received from the socket back to itself. To break the loop and make _nn_device_ function exit use linknanomsg:nn_term[3] function. RETURN VALUE ------------ The function loops until it hits an error. In such case it returns -1 and sets 'errno' to one of the values defined below. ERRORS ------ *EBADF*:: One of the provided sockets is invalid. *EINVAL*:: Either one of the socket is not an AF_SP_RAW socket; or the two sockets don't belong to the same protocol; or the directionality of the sockets doesn't fit (e.g. attempt to join two SINK sockets to form a device). *EINTR*:: The operation was interrupted by delivery of a signal. *ETERM*:: The library is terminating. EXAMPLE ------- ---- int s1 = nn_socket (AF_SP_RAW, NN_REQ); nn_bind (s1, "tcp://eth0:5555"); int s2 = nn_socket (AF_SP_RAW, NN_REP); nn_bind (s2, "tcp://eth0:5556"); nn_device (s1, s2); ---- SEE ALSO -------- linknanomsg:nn_socket[3] linknanomsg:nn_term[3] linknanomsg:nanomsg[7] AUTHORS ------- Martin Sustrik