SCTP_SENDMSG(3SOCKET) Sockets Library Functions SCTP_SENDMSG(3SOCKET)
NAME
sctp_sendmsg - send message from an SCTP socket
SYNOPSIS
cc [
flag... ]
file...
-lsocket -lnsl -lsctp [
library... ]
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/sctp.h>
ssize_t sctp_sendmsg(
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);
DESCRIPTION
The
sctp_sendmsg() function sends a message from the SCTP endpoint
s.
In addition to specifying
msg as the message buffer and
len as the
length of the buffer, the following parameters can be set:
to Destination address
tolen Length of the destination address
ppid Application-specified payload protocol identifier
stream_no Target stream for the message
timetolive Time period in milliseconds after which the message
expires if transmission for the message has not been
started. A value of
0 indicates that the message does
not expire. When the
MSG_PR_SCTP flag is set the
message expires, even if transmission has started,
unless the entire message is transmitted within the
timetolive period.
context Value returned when an error occurs in sending a
message
The
flags parameter is formed from the bitwise OR of zero or more of
the following flags:
MSG_UNORDERED This flag requests un-ordered delivery of the
message. If this flag is clear the message is
considered an ordered send.
MSG_ABORT When set, this flag causes the specified association
to abort by sending an ABORT to the peer. The flag
is used only for one-to-many style SCTP socket
associations.
MSG_EOF When set, this flag invokes a graceful shutdown on a
specified association. The flag is used only for
one-to-many style SCTP socket associations.
MSG_PR_SCTP This flag indicates that the message is treated as
partially reliable. The message expires unless the
entire message is successfully transmitted within
the time period specified in the
timetolive parameter.
MSG_PR_SCTP implements
timed reliability service for
SCTP messages. As yet, no common standard has been
defined for the service and the interface is
considered unstable.
The initial call to
sctp_sendmsg() can be used to create an
association, but it cannot be used subsequently on an existing
association. Since
sctp_sendmsg() always uses 0 internally as the
association ID, it is not suitable for use on one-to-many sockets.
RETURN VALUES
Upon successful completion, the
sctp_sendmsg() function returns the
number of bytes sent. The function returns
-1 if an error occurs.
ERRORS
The
sctp_sendmsg() function will fail if:
EBADF The
s argument is an invalid file descriptor.
ENOTSOCK The
s argument is not a socket.
EOPNOTSUPP MSG_OOB is set as a
flag.
EOPNOTSUPP MSG_ABORT or
MSG_EOF is set on a one-to-one style
SCTP socket.
EPIPE The socket is shutting down and no more writes are
allowed.
EAGAIN The socket is non-blocking and the transmit queue is
full.
ENOTCONN There is no established association.
EINVAL Control message length is incorrect.
EINVAL Specified destination address does not belong to the
association.
EAFNOSUPPORT Address family of the specified destination address
is other than
AF_INET or
AF_INET6.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
in.h(3HEAD),
socket.h(3HEAD),
libsctp(3LIB),
accept(3SOCKET),
bind(3SOCKET),
connect(3SOCKET),
listen(3SOCKET),
sendmsg(3SOCKET),
sockaddr(3SOCKET),
socket(3SOCKET),
sctp(4P),
attributes(7) August 22, 2007 SCTP_SENDMSG(3SOCKET)