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 theto
parameter 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
timetolive
parameter.
-
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
.