#include <sys/types.h>
       #include <sys/socket.h>
       #include <netinet/sctp.h>

       int sctp_connectx(int sd, struct sockaddr * addrs, int addrcnt,
                         sctp_assoc_t  * id);

       sctp_connectx initiates a connection to a set of  addresses  passed  in
       the  array  addrs  to/from  the  socket  sd.   addrcnt is the number of
       addresses in the array.

       If sd is an IPv4 socket, the addresses passed must be  IPv4  addresses.
       If  sd  is  an  IPv6 socket, the addresses passed can be either IPv4 or
       IPv6 addresses.

       addrs is a pointer to an array of one or more  socket  addresses.  Each
       address  is  contained  in  its appropriate structure(i.e. struct sock-
       addr_in or struct sockaddr_in6). The family of the address type must be
       used to distinguish the address length. The caller specifies the number
       of addresses in the array with addrcnt.

       id is a pointer to the association id and, if provided, will be set  to
       the identifier of the newly created association.

       On success, 0 is returned. On failure, -1 is returned, and errno is set

       EBADF  sd is not a valid descriptor.

              sd is a descriptor for a file, not a socket.

       EFAULT Error while copying in or out from the user address space.

       EINVAL Invalid port or address.

       EACCES The address is protected, and the user is not the super-user.

              The socket is already connected.

              No one listening on the remote address.

              Timeout while attempting connection. The server may be too  busy
              to  accept new connections. Note that for IP sockets the timeout
              may be very long when syncookies are enabled on the server.

              (SO_ERROR is one of the usual error codes listed here,  explain-
              ing the reason for the failure).

              The socket is non-blocking and a previous connection attempt has
              not yet been completed.

       EAGAIN No more free local ports or insufficient entries in the  routing
              cache.  For  PF_INET see the net.ipv4.ip_local_port_range sysctl
              in ip(7) on how to increase the number of local ports.

              The passed address didn't have the correct address family in its
              sa_family field.

              The  user tried to connect to a broadcast address without having
              the socket broadcast flag  enabled  or  the  connection  request
              failed because of a local firewall rule.

       sctp(7)  sctp_bindx(3), sctp_sendmsg(3), sctp_send(3), sctp_recvmsg(3),
       sctp_peeloff(3),         sctp_getpaddrs(3),          sctp_getladdrs(3),

Linux 2.6                         2005-10-25                  SCTP_CONNECTX(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2019 Hurricane Electric. All Rights Reserved.