Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NN_BIND(3)			  nanomsg 1.1.5 		      NN_BIND(3)

NAME
     nn_bind - add a local endpoint to the socket

SYNOPSIS
     #include <nanomsg/nn.h>

     int nn_bind (int s, const char *addr);

DESCRIPTION
     Adds  a  local  endpoint  to the socket s. The endpoint can be then used by
     other applications to connect to.

     The addr argument consists of two parts  as  follows:  transport://address.
     The transport specifies the underlying transport protocol to use. The mean-
     ing of the address part is specific to the underlying transport protocol.

     For  the list of available transport protocols check the list on nanomsg(7)
     manual page.

     Maximum length of the addr parameter is specified	by  NN_SOCKADDR_MAX  de-
     fined in <nanomsg/nn.h> header file.

     Note  that  nn_bind  and  nn_connect(3) may be called multiple times on the
     same socket thus allowing the socket to communicate with multiple heteroge-
     neous endpoints.

NOTE
     Unlike with traditional BSD sockets, this function operates asynchronously,
     and returns to the caller before the operation is complete.  As  a  result,
     attempts  to  send data or receive data on the socket may not succeed until
     the underlying transport actually establishes a connection.

RETURN VALUE
     If the function succeeds positive endpoint ID is returned. Endpoint ID  can
     be  later	used  to  remove the endpoint from the socket via nn_shutdown(3)
     function.

     If the function fails, then -1 is returned and errno is set to  to  one  of
     the values defined below.

ERRORS
     EBADF
	 The provided socket is invalid.

     EMFILE
	 Maximum number of active endpoints was reached.

     EINVAL
	 The syntax of the supplied address is invalid.

     ENAMETOOLONG
	 The supplied address is too long.

     EPROTONOSUPPORT
	 The requested transport protocol is not supported.

     EADDRNOTAVAIL
	 The requested endpoint is not local.

     ENODEV
	 Address specifies a nonexistent interface.

     EADDRINUSE
	 The requested local endpoint is already in use.

     ETERM
	 The library is terminating.

EXAMPLE
	 s = nn_socket (AF_SP, NN_PUB);
	 eid1 = nn_bind (s, "inproc://test");
	 eid2 = nn_bind (s, "tcp://127.0.0.1:5560");

SEE ALSO
     nn_inproc(7)  nn_ipc(7) nn_tcp(7) nn_socket(3) nn_connect(3) nn_shutdown(3)
     nanomsg(7)

AUTHORS
     Martin Sustrik <sustrik@250bpm.com> Garrett D'Amore <garrett@damore.org>

				   2018-10-15			      NN_BIND(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nn_bind&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help