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

sctp_recvmsg()

ssize_t sctp_recvmsg(int s, void *msg, size_t len, struct sockaddr *from, socklen_t *fromlen, struct sctp_sndrcvinfo *sinfo , int *msg_flags);

sctp_recvmsg() 関数は、s パラメータによって指定される SCTP 終端からのメッセージの受信を有効にします。呼び出し元プログラムによって次の属性を指定できます。

msg

このパラメータは、メッセージバッファーのアドレスです。

len

このパラメータは、メッセージバッファーの長さです。

from

このパラメータは、送信元のアドレスを含むアドレスへのポインタです。

fromlen

from パラメータのアドレスに関連付けられたバッファーのサイズです。

sinfo

このパラメータは、呼び出し元プログラムで sctp_data_io_events が有効な場合のみ有効です。sctp_data_io_events を有効にするには、ソケットオプション SCTP_EVENTS() によって setsockopt 関数を呼び出します。sctp_data_io_events が有効である場合、アプリケーションは着信メッセージごとに sctp_sndrcvinfo 構造体の内容を受信します。このパラメータは、sctp_sndrcvinfo 構造体へのポインタです。構造体はメッセージの受信時にデータを取り込みます。

msg_flags

このパラメータは、存在するメッセージフラグを含みます。

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

s パラメータの渡されたファイル記述子が有効でない場合、sctp_recvmsg() 関数は失敗して errno の値を EBADF に設定します。s パラメータに渡されたファイル記述子がソケットでない場合、sctp_recvmsg() 関数は失敗して errno の値を ENOTSOCK に設定します。msg_flags パラメータに値 MSG_OOB が含まれる場合、sctp_recvmsg() 関数は失敗して errno の値を EOPNOTSUPP に設定します。関連付けが確立していない場合、sctp_recvmsg() 関数は失敗して errno の値を ENOTCONN に設定します。