Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   sctp_recvv    ( 3 )

получите сообщение от сокета SCTP с возможностью расширения (Receive a message from a SCTP socket with an extensible way.)

Имя (Name)

sctp_recvv - Receive a message from a SCTP socket with an extensible way.


Синопсис (Synopsis)

#include <sys/types.h> #include <sys/socket.h> #include <netinet/sctp.h>

int sctp_recvv(int sd, const struct iovec * iov, int iovlen, struct sockaddr * from, socklen_t * fromlen, void * info, socklen_t * infolen, unsigned int * infotype, int * flags);


Описание (Description)

sctp_recvv provides an extensible way for the SCTP stack to pass up different SCTP attributes associated with a received message to an application. There are two types of attributes that can be returned by this call: the attribute of the received message and the attribute of the next message in the receive buffer. The caller enables the SCTP_RECVRCVINFO and SCTP_RECVNXTINFO socket options, respectively, to receive these attributes. Attributes of the received message are returned in struct sctp_rcvinfo, and attributes of the next message are returned in struct sctp_nxtinfo. If both options are enabled, both attributes are returned using the following structure.

struct sctp_recvv_rn { struct sctp_rcvinfo recvv_rcvinfo; struct sctp_nxtinfo recvv_nxtinfo; };

sd is the socket descriptor. iov is the scatter buffer, and only one user message is returned in this buffer. iovlen is the number of elements in iov. from is a pointer to a buffer to be filled with the sender of the received message's address. fromlen is an in/out parameter describing the from length. info is a pointer to the buffer to hold the attributes of the received message, the structure type of info is determined by the info_type parameter. infolen is an in/out parameter describing the size of the info buffer. On return, infotype is set to the type of the info buffer, and the current defined values are as follows:

SCTP_RECVV_NOINFO If neither SCTP_RECVRCVINFO nor SCTP_RECVNXTINFO options are enabled, no attribute will be returned. If only the SCTP_RECVNXTINFO option is enabled but there is no next message in the buffer, no attribute will be returned. In these cases, *info_type will be set to SCTP_RECVV_NOINFO.

SCTP_RECVV_RCVINFO The type of info is struct sctp_rcvinfo, and the attribute relates to the received message.

SCTP_RECVV_NXTINFO The type of info is struct sctp_nxtinfo, and the attribute relates to the next message in the receive buffer. This is the case when only the SCTP_RECVNXTINFO option is enabled and there is a next message in the buffer.

SCTP_RECVV_RN The type of info is struct sctp_recvv_rn. The recvv_rcvinfo field is the attribute of the received message, and the recvv_nxtinfo field is the attribute of the next message in the buffer. This is the case when both SCTP_RECVRCVINFO and SCTP_RECVNXTINFO options are enabled and there is a next message in the receive buffer.

flags is pointer to an integer to be filled with any message flags (e.g., MSG_NOTIFICATION).


Возвращаемое значение (Return value)

On success, sctp_recvv returns the number of bytes received or -1 if an error occurred.


Смотри также (See also)

sctp(7) sctp_bindx(3), sctp_connectx(3), sctp_sendmsg(3), sctp_sendv(3), sctp_send(3), sctp_peeloff(3), sctp_getpaddrs(3), sctp_getladdrs(3), sctp_opt_info(3)