# sctp_sendmsg

## NAME



           sctp_sendmsg - Send a message from a SCTP socket.
    


## SYNOPSIS



           **#include <sys/types.h>**
           **#include <sys/socket.h>**
           **#include <netinet/sctp.h>**
    
           **int sctp_sendmsg(int** _sd_**, const void ***_msg_**, size_t** _len_**,**
                            **struct sockaddr ***_to_**, socklen_t** _tolen_**,**
                            **uint32_t** _ppid_**, uint32_t** _flags_**,**
                            **uint16_t** _stream_no_**, uint32_t** _timetolive_**,**
                            **uint32_t** _context_**);**
    


## DESCRIPTION



           **sctp_sendmsg** is a wrapper library function that can be used to
           send a message from a socket while using the advanced features of
           SCTP.  _sd_ is the socket descriptor from which the message pointed
           to by _msg_ of length _len_ is sent.  _to_ is the destination address of
           the message and _tolen_ is the length of the destination address.
           _stream_no_ identifies the stream number that the application wishes
           to send this message to.  _flags_ parameter is composed of a bitwise
           OR of the following values.
    
           **SCTP_UNORDERED**
                  This flags requests the un-ordered delivery of the message.
    
           **SCTP_ADDR_OVER**
                  This flag, in the one-to-many style, requests the SCTP
                  stack to override the primary destination address with
                  address specified in _to._
    
           **SCTP_ABORT**
                  Setting this flag causes the specified association to abort
                  by sending an ABORT message to the peer(one-to-many style
                  only). The ABORT chunk will contain an error cause 'User
                  Initiated Abort' with cause code 12. The cause specific
                  information of this error cause is provided in _msg._
    
           **SCTP_EOF**
                  Setting this flag invokes the SCTP graceful shutdown
                  procedure on the specific association(one-to-many style
                  only).
    
           **SCTP_SENDALL**
                  This flag, if set, will cause a one-to-many style socket to
                  send the message to all associations that are currently
                  established on this socket. For the one-to-one style
                  socket, this flag has no effect.
    
           **SCTP_SACK_IMMEDIATELY**
                  This flag allows the application to set the I bit of the
                  last DATA chunk when sending each user message to make sure
                  the corresponding SACK can be sent by peer without delay.
    
           **SCTP_PR_SCTP_{TTL|RTX|PRIO}**
                  One of these 3 pr_policies can be used through this flag
                  with its pr_value set in timetolive parameter for this
                  message. Note that sctp_sendv(3) with infotype
                  SCTP_SENDV_PRINFO also works for PR-SCTP.
    
           _timetolive_ specifies the time duration in milliseconds. The
           sending side will expire the message if the message has not been
           sent to the peer within this time period.  A value of 0 indicates
           that no timeout should occur on this message. It also works as the
           pr_value if flags parameter is set to pr_policy.  _ppid_ is an
           opaque unsigned value that is passed to the remote end along with
           the message.  _context_ is a 32 bit opaque value that is passed back
           to the upper layer along with the undelivered message if an error
           occurs on the send of the message.
    


## RETURN VALUE



           On success, **sctp_sendmsg** returns the number of bytes sent or -1 if
           an error occurred.
    


* * *