基本SCTP套接字编程常用函数

sctp_bindx函数:允许SCTP套接字捆绑一个特定地址子集

#include <netinet/sctp.h>

// 若成功返回0,出错返回-1
int sctp_bindx(int sockfd, const struct sockaddr *addrs, int addrcnt, int flags);

sctp_connectx函数:用于连接到一个多宿对端主机

#include <netinet/sctp.h>

// 若成功返回0,出错返回-1
int sctp_connectx(int sockfd, const struct *addr, int addrcnt);

sctp_getpaddrs函数:使用SCTP时它仅仅返回主目的地址,使用sctp_getpaddrs用于获取对端所有地址

#include <netinet/sctp.h>

// 若成功返回存放在addrs中的对端地址数,出错返回-1
int sctp_getpaddrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);

sctp_freepaddrs函数:用于释放sctp_getpaddrs函数分配的资源

#include <netinet/sctp.h>

void sctp_freepaddrs(struct sockaddr *addrs);

sctp_getladdrs函数:获取属于某个关联的本地地址

#include <netinet/sctp.h>

// 若成功返回存放在addrs中的本端地址数,出错返回-1
int sctp_getladdrs(int sockfd, sctp_assoc_t id, struct sockaddr **addrs);

sctp_freeladdrs函数:用于释放sctp_getladdrs函数分配的资源

#include <netinet/sctp.h>

void sctp_freeladdrs(struct sockaddr *addrs);

sctp_sendmsg函数:SCTP通过让使用者提供更多参数,来简化使用伴随辅助数据的sendmsg函数

#include <netinet/sctp.h>

// 若成功返回所写的字节数,出错返回-1
sszie_t sctp_sendmsg(int sockfd, const void *msg, size_t msgsz, 
                     const struct sockaddr *to, socklen_t tolen, 
                     uint32_t ppid, 
                     uint32_t flags, uint16_t stream, 
                     uint32_t timetolive, uint32_t context);

sctp_recvmsg函数:SCTP通过让使用者提供更多参数,来简化使用伴随辅助数据的recvmsg函数

#include <netinet/sctp.h>

// 若成功返回所读的字节数,出错返回-1
sszie_t sctp_recvmsg(int sockfd, const void *msg, size_t msgsz, 
                     struct sockaddr *from, socklen_t fromlen, 
                     struct sctp_sndrcvinfo *sinfo, 
                     int *msg_flags);

sctp_opt_info函数:用于那些无法为SCTP使用getsockopt函数的实现提供的

#include <netinet/sctp.h>

// 若成功返回0,出错返回-1
int sctp_opt_info(int sockfd, sctp_assoc_t assoc_id, int opt, void *arg, socklen_t *siz);

sctp_peeloff函数:从一个一到多式套接字中抽取一个关联,构成单独一个一到一式套接字

#include <netinet/sctp.h>

// 若成功返回一个新的套接字描述符,出错返回-1
int sctp_peeloff(int sockfd, sctp_assoc_t id);
posted @ 2018-08-20 10:44  荒唐了年少  阅读(735)  评论(0编辑  收藏  举报