プログラミングインタフェース

sctp_send()

ssize_t sctp_send(int s, const void *msg, size_t len, const struct sctp_sndrcvinfo *sinfo , int flags);

sctp_send() 関数は、1 対 1 スタイルソケットと 1 対多スタイルソケットで使用できます。sctp_send() 関数は、SCTP 終端からメッセージを送信する際の拡張 SCTP 機能を有効にします。

s

この値は、socket() 関数によって作成されるソケットです。

msg

この値は、sctp_send() 関数によって送信されるメッセージです。

len

この値は、メッセージの長さで、バイト単位で表されます。

sinfo

この値は、メッセージの送信のために使用されるパラメータです。1 対多スタイルソケットの場合、メッセージの送信先の関連付け ID をこの値に指定できます。

flags

この値は、sendmsg() 関数のフラグパラメータと同じです。

sctp_send() 関数は、送信したバイト数を返します。エラーが発生した場合、sctp_send() 関数は -1 を返します。

s パラメータの渡されたファイル記述子が有効でない場合、sctp_send() 関数は失敗して errno の値を EBADF に設定します。s パラメータの渡されたファイル記述子がソケットでない場合、sctp_send() 関数は失敗して errno の値を ENOTSOCK に設定します。sinfo パラメータの sinfo_flags フィールドに値 MSG_OOB が含まれる場合、sctp_send() 関数は失敗して errno の値を EOPNOTSUPP に設定します。1 対 1 スタイルソケットで sinfo パラメータの sinfo_flags フィールドに値 MSG_ABORT または MSG_EOF が含まれる場合、sctp_send() 関数は失敗して errno の値を EOPNOTSUPP に設定します。関連付けが確立していない場合、sctp_send() 関数は失敗して errno の値を ENOTCONN に設定します。ソケットが停止していてそれ以上の書込みができない場合、sctp_send() 関数は失敗して errno の値を EPIPE に設定します。ソケットが非ブロックで、伝送待ち行列がいっぱいである場合、sctp_send() 関数は失敗して errno の値を EAGAIN に設定します。

制御メッセージ長が不正である場合、sctp_send() 関数は失敗して errno の値を EINVAL に設定します。指定された着信先アドレスが関連付けに属さない場合、sctp_send() 関数は失敗して errno の値を EINVAL に設定します。stream_no の値が関連付けによってサポートされる発信ストリームの数以外である場合、sctp_send() 関数は失敗して errno の値を EINVAL に設定します。指定された着信先アドレスのアドレス群が AF_INET または AF_INET6 ではない場合、sctp_send() 関数は失敗して errno の値を EINVAL に設定します。