nanomsg
Home Download Documentation Development Community Support
NOTE: This documentation is for version 0.1-alpha of nanomsg, but the latest released version is 1.1.2. Please see the documentation for 1.1.2 for the most up-to-date information.
nn_device(3)

SYNOPSIS

#include <nanomsg/nn.h>

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 nn_term(3) function.

RETURN VALUE

The function loops until it hits an error. In such case it returns a negative value 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

AUTHORS

Martin Sustrik <sustrik@250bpm.com>


"nanomsg" is a trademark of Garrett D'Amore.