sctp_sendmsg() Function
ssize_t sctp_sendmsg(s, *msg, len, *to, tolen, ppid, flags, stream_no, timetolive, context);
int s, const void *msg, size_t len, const struct sockaddr *to, socklen_t tolen, uint32_t ppid, uint32_t flags, uint16_t stream_no, uint32_t timetolive, uint32_t context;The sctp_sendmsg() function enables advanced SCTP features while sending a message from an SCTP endpoint.
-
s -
This value specifies the SCTP endpoint that is sending the message.
-
msg -
This value contains the message sent by the
sctp_sendmsg() function. -
len -
This value is the length of the message. This value is expressed in bytes.
-
to -
This value is the destination address of the message.
-
tolen -
This value is the length of the destination address.
-
ppid -
This value is the application-specified payload protocol identifier.
-
stream_no -
This value is the target stream for this message.
-
timetolive -
This value is the time period after which the message expires if it has not been successfully sent to the peer. This value is expressed in milliseconds.
-
context -
This value is returned if an error occurs during the sending of the message.
-
flags -
This value is formed from applying the logical operation OR in bitwise fashion on zero or more of the following flag bits:
-
MSG_UNORDERED -
When this flag is set, the
sctp_sendmsg() function delivers the message unordered. -
MSG_ADDR_OVER -
When this flag is set, the
sctp_sendmsg() function uses the address in thetoparameter instead of the association's primary destination address. This flag is only used with one-to-many SCTP sockets model. -
MSG_ABORT -
When this flag is set, the specified association aborts by sending an ABORT signal to its peer. This flag is only used with one-to-many SCTP sockets model.
-
MSG_EOF -
When this flag is set, the specified association enters graceful shutdown. This flag is only used with one-to-many SCTP sockets model.
-
MSG_PR_SCTP -
When this flag is set, the message expires when its transmission has not successfully completed within the time period specified in the
timetoliveparameter.
-
The sctp_sendmsg() function returns the number of bytes it sent. The sctp_sendmsg() function returns -1 when an error occurs.
If the file descriptor passed in the s parameter is not valid, the sctp_sendmsg() function fails and sets the value of errno to EBADF. If the file descriptor passed in the s parameter does not describe a socket, the sctp_sendmsg() function fails and sets the value of errno to ENOTSOCK. If the flags parameter includes the value MSG_OOB, the sctp_sendmsg() function fails and sets the value of errno to EOPNOTSUPP. If the flags parameter includes the values MSG_ABORT or MSG_EOF for a one-to-one socket model, the sctp_sendmsg() function fails and sets the value of errno to EOPNOTSUPP. If there is no established association, the sctp_sendmsg() function fails and sets the value of errno to ENOTCONN. If the socket is shutting down, disallowing further writes, the sctp_sendmsg() function fails and sets the value of errno to EPIPE. If the socket is nonblocking and the transmit queue is full, the sctp_sendmsg() function fails and sets the value of errno to EAGAIN.
If the control message length is incorrect, the sctp_sendmsg() function fails and sets the value of errno to EINVAL. If the specified destination address does not belong to the association, the sctp_sendmsg() function fails and sets the value of errno to EINVAL. If the value of stream_no is outside the number of outbound streams that the association supports, the sctp_sendmsg() function fails and sets the value of errno to EINVAL. If the address family of the specified destination address is not AF_INET or AF_INET6, the sctp_sendmsg() function fails and sets the value of errno to EINVAL.