s网站优化,郑州做网站 熊掌号,政务公开与网站建设的矛盾,wordpress 汉化包转载地址#xff1a; oracle开发帮助文档#xff1a;http://docs.oracle.com/cd/E19253-01/819-7052/index.html SCTP 套接字接口 当 socket() 调用为 IPPROTO_SCTP 创建套接字时#xff0c;它会调用特定于 SCTP 的套接字创建例程。针对 SCTP 套接字执行的套接字调用会自动调…转载地址 oracle开发帮助文档http://docs.oracle.com/cd/E19253-01/819-7052/index.html SCTP 套接字接口 当 socket() 调用为 IPPROTO_SCTP 创建套接字时它会调用特定于 SCTP 的套接字创建例程。针对 SCTP 套接字执行的套接字调用会自动调用相应的 SCTP 套接字例程。在一对一套接字中每个套接字都对应一个 SCTP 关联。可以通过调用以下函数来创建一对一套接字
socket(AF_INET[6], SOCK_STREAM, IPPROTO_STCP); 在一对多风格套接字中每个套接字都处理多个 SCTP 关联。每个关联都具有一个名为 sctp_assoc_t 的关联标识符。可以通过调用以下函数来创建一对多套接字
socket(AF_INET[6], SOCK_SEQPACKET, IPPROTO_STCP); sctp_bindx()
int sctp_bindx(int
sock
, void
*addrs
, int
addrcnt
, int
flags
); sctp_bindx() 函数管理 SCTP 套接字上的地址。如果 sock 参数为 IPv4 套接字则传送给 sctp_bindx() 函数的地址必须为 IPv4 地址。如果 sock 参数为 IPv6 套接字则传送给 sctp_bindx() 函数的地址可以为 IPv4 或 IPv6 地址。当传送给 sctp_bindx() 函数的地址为 INADDR_ANY 或 IN6ADDR_ANY 时此套接字将绑定到所有可用地址。可以使用 bind(3SOCKET) 绑定 SCTP 端点。 *addrs 参数的值是指向包含一个或多个套接字地址的数组的指针。每个地址都包含在其相应的结构中。如果地址为 IPv4 地址则它们可以包含在 sockaddr_in 结构或 sockaddr_in6 结构中。如果地址为 IPv6 地址则它们可以包含在 sockaddr_in6 结构中。可以通过地址类型系列区分地址长度。调用方使用 addrcnt 参数指定数组中的地址数。 如果成功则 sctp_bindx() 函数将返回 0。如果失败则 sctp_bindx() 函数将返回 -1并将 errno 的值设置为相应的错误代码。 如果没有为每个套接字地址提供同一端口则 sctp_bindx() 函数将失败并将 errno 的值设置为 EINVAL。 通过对以下零个或多个当前定义的标志执行按位 OR 运算即可形成 flags 参数 SCTP_BINDX_ADD_ADDR SCTP_BINDX_REM_ADDR SCTP_BINDX_ADD_ADDR 指示 SCTP 将给定地址添加到关联中。SCTP_BINDX_REM_ADDR 指示 SCTP 从关联中删除给定地址。这两个标志相互排斥。如果同时提供这两个标志则 sctp_bindx() 将失败并将 errno 的值设置为 EINVAL。 调用方无法删除关联中的所有地址。sctp_bindx() 函数拒绝此类尝试的表现为函数失败并将 errno 的值设置为 EINVAL。应用程序可以在调用 bind() 函数之后使用 sctp_bindx(SCTP_BINDX_ADD_ADDR)将其他地址与端点关联。应用程序可以使用 sctp_bindx(SCTP_BINDX_REM_ADDR) 删除与侦听套接字关联的地址。使用 sctp_bindx(SCTP_BINDX_REM_ADDR) 删除地址之后接受新关联将不会重新关联已删除的地址。如果端点支持动态地址则可以使用 SCTP_BINDX_REM_ADDR 或 SCTP_BINDX_ADD_ADDR 向对等方发送消息来更改对等方的地址列表。在已连接的关联中添加和删除地址为可选功能。不支持此功能的实现将返回 EOPNOTSUPP。 如果地址族不是 AF_INET 或 AF_INET6则 sctp_bindx() 函数将失败并返回 EAFNOSUPPORT。如果 sock 参数中传递给 sctp_bindx() 的文件描述符无效则 sctp_bindx() 函数将失败并返回 EBADF。 sctp_opt_info()
int sctp_opt_info(int
sock
, sctp_assoc_id_t
id
, int
opt
, void
*arg
, socklen_t
*len
); sctp_opt_info() 函数将返回与 sock 参数中所述的套接字关联的 SCTP 级别选项。如果此套接字为一对多风格 SCTP 套接字则 id 参数的值是某个特定关联。对于一对一风格 SCTP 套接字将忽略 id 参数。opt 参数的值指定要获取的 SCTP 套接字选项。arg 参数的值是为调用程序而分配的特定于选项的结构缓冲区。*len 参数的值为选项长度。 opt 参数可以采用以下值 SCTP_RTOINFO 返回用于初始化和绑定重新传输超时 (retransmission timeout, RTO) 可调参数的协议参数。这些协议参数使用以下结构 struct sctp_rtoinfo {sctp_assoc_t srto_assoc_id;uint32_t srto_initial;uint32_t srto_max; uint32_t srto_min;}; srto_assoc_id 调用程序提供此值它指定所关注的关联。 srto_initial 此值为初始 RTO 值。 srto_max 此值为最大 RTO 值。 srto_min 此值为最小 RTO 值。 SCTP_ASSOCINFO 返回特定于关联的参数。这些参数使用以下结构 struct sctp_assocparams {sctp_assoc_t sasoc_assoc_id;uint16_t sasoc_asocmaxrxt;uint16_t sasoc_number_peer_destinations;uint32_t sasoc_peer_rwnd;uint32_t sasoc_local_rwnd;uint32_t sasoc_cookie_life;}; sasoc_assoc_id 调用程序提供此值它指定所关注的关联。 sasoc_assocmaxrxt 此值指定关联的最大重新传输计数。 sasoc_number_peer_destinations 此值指定对等方具有的地址数。 sasoc_peer_rwnd 此值指定对等方接收窗口的当前值。 sasoc_local_rwnd 此值指定对等方传输到的上一个已报告的接收窗口。 sasoc_cookie_life 此值指定关联 cookie 的生命周期。可在发出 cookie 时使用此值。 所有使用时间值的参数均以毫秒为单位。 SCTP_DEFAULT_SEND_PARAM 返回 sendto(3SOCKET) 函数调用在此关联中使用的缺省参数集。这些参数使用以下结构 struct sctp_sndrcvinfo {uint16_t sinfo_stream;uint16_t sinfo_ssn;uint16_t sinfo_flags;uint32_t sinfo_ppid;uint32_t sinfo_context;uint32_t sinfo_timetolive;uint32_t sinfo_tsn;uint32_t sinfo_cumtsn;sctp_assoc_t sinfo_assoc_id;}; sinfo_stream 此值指定 sendmsg() 调用的缺省流。 sinfo_ssn 此值始终为 0。 sinfo_flags 此值包含 sendmsg() 调用的缺省标志。此标志可以采用以下值 MSG_UNORDERED MSG_ADDR_OVER MSG_ABORT MSG_EOF MSG_PR_SCTP sinfo_ppid 此值为 sendmsg() 调用的缺省有效负荷协议标识符。 sinfo_context 此值为 sendmsg() 调用的缺省上下文。 sinfo_timetolive 此值指定时间段以毫秒为单位。在此时间段过后如果消息传输尚未开始则消息将过期。值为 0 指示消息尚未过期。如果设置了 MSG_PR_SCTP 标志当消息传输未在 sinfo_timetolive 所指定的时间段内成功完成时消息将过期。 sinfo_tsn 此值始终为 0。 sinfo_cumtsn 此值始终为 0。 sinfo_assoc_id 此值由调用程序填充。它指定所关注的关联。 SCTP_PEER_ADDR_PARAMS 返回所指定对等地址的参数。这些参数使用以下结构 struct sctp_paddrparams {sctp_assoc_t spp_assoc_id;struct sockaddr_storage spp_address;uint32_t spp_hbinterval;uint16_t spp_pathmaxrxt;}; spp_assoc_id 调用程序提供此值它指定所关注的关联。 spp_address 此值指定所关注的对等地址。 spp_hbinterval 此值指定心跳间隔以毫秒为单位。 spp_pathmaxrxt 此值指定在认为地址不可访问之前针对此地址尝试的最大重新传输数。 SCTP_STATUS 返回有关关联的当前状态信息。这些参数使用以下结构 struct sctp_status {sctp_assoc_t sstat_assoc_id;int32_t sstat_state;uint32_t sstat_rwnd;uint16_t sstat_unackdata;uint16_t sstat_penddata;uint16_t sstat_instrms;uint16_t sstat_outstrms;uint32_t sstat_fragmentation_point;struct sctp_paddrinfo sstat_primary;}; sstat_assoc_id 调用程序提供此值它指定所关注的关联。 sstat_state 此值为关联的当前状态。关联可以采用以下状态 SCTP_IDLE SCTP 端点没有任何与其关联的关联。一旦 socket() 函数调用打开一个端点或端点关闭则端点便会处于此状态。 SCTP_BOUND SCTP 端点在调用 bind() 之后绑定到一个或多个本地地址。 SCTP_LISTEN 此端点在等待来自任何远程 SCTP 端点的关联请求。 SCTP_COOKIE_WAIT 此 SCTP 端点已发送 INIT 块并在等待 INIT-ACK 块。 SCTP_COOKIE_ECHOED 此 SCTP 端点已将从其对等方的 INIT-ACK 块接收的 cookie 回显到对等方。 SCTP_ESTABLISHED 此 SCTP 端点可以与其对等方交换数据。 SCTP_SHUTDOWN_PENDING 此 SCTP 端点已从其上层接收了 SHUTDOWN 元语。此端点不再从其上层接受数据。 SCTP_SHUTDOWN_SEND 处于 SCTP_SHUTDOWN_PENDING 状态的 SCTP 端点已向其对等方发送了 SHUTDOWN 块。仅在确认所有从此端点到其对等方的未完成数据之后才发送 SHUTDOWN 块。当此端点的对等方发送 SHUTDOWN ACK 块时此端点会发送 SHUTDOWN COMPLETE 块并认为关联已关闭。 SCTP_SHUTDOWN_RECEIVED SCTP 端点已从其对等方接收了 SHUTDOWN 块。此端点不再从其用户接受新数据。 SCTP_SHUTDOWN_ACK_SEND 处于 SCTP_SHUTDOWN_RECEIVED 状态的 SCTP 端点已向其对等方发送了 SHUTDOWN ACK 块。此端点仅在其对等方确认来自此端点的所有未完成数据之后发送 SHUTDOWN ACK 块。当此端点的对等方发送 SHUTDOWN COMPLETE 块时将关闭关联。 sstat_rwnd 此值为关联对等方的当前接收窗口。 sstat_unackdata 此值为未确认的 DATA 块数。 sstat_penddata 此值为等待接收的 DATA 块数。 sstat_instrms 此值为传入的流数。 sstat_outstrms 此值为外发的流数。 sstat_fragmentation_point 如果消息、SCTP 数据包头和 IP 数据包头的组合大小超出 sstat_fragmentation_point 的值则消息会分段。此值等于包目标地址的路径最大传输单元 (Path Maximum Transmission Unit, P-MTU)。 sstat_primary 此值包含有关主要对等地址的信息。此信息使用以下结构 struct sctp_paddrinfo {sctp_assoc_t spinfo_assoc_id;struct sockaddr_storage spinfo_address;int32_t spinfo_state;uint32_t spinfo_cwnd;uint32_t spinfo_srtt;uint32_t spinfo_rto;uint32_t spinfo_mtu;}; spinfo_assoc_id 调用程序提供此值它指定所关注的关联。 spinfo_address 此值为主要对等地址。 spinfo_state 此值可以采用 SCTP_ACTIVE 或 SCTP_INACTIVE 两个值中的任意一个。 spinfo_cwnd 此值为对等地址的拥塞窗口。 spinfo_srtt 此值为对等地址的当前平滑往返时间计算结果以毫秒为单位。 spinfo_rto 此值为对等地址的当前重新传输超时值以毫秒为单位。 spinfo_mtu 此值为对等地址的 P-MTU。 如果成功则 sctp_opt_info() 函数将返回 0。如果失败则 sctp_opt_info() 函数将返回 -1并将 errno 的值设置为相应的错误代码。如果 sock 参数中传递给 sctp_opt_info() 的文件描述符无效则 sctp_opt_info() 函数将失败并返回 EBADF。如果 sock 参数中传递给 sctp_opt_info() 函数的文件描述符没有描述套接字则 sctp_opt_info() 函数将失败并返回 ENOTSOCK。如果关联 ID 对于一对多风格 SCTP 套接字而言无效则 sctp_opt_info() 函数将失败并将 errno 的值设置为 EINVAL。如果输入缓冲区长度对于指定的选项而言过短则 sctp_opt_info() 函数将失败并将 errno 的值设置为 EINVAL。如果对等地址的地址族不是 AF_INET 或 AF_INET6则 sctp_opt_info() 函数将失败并将 errno 的值设置为 EAFNOSUPPORT。 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。 sctp_sendmsg()
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
); sctp_sendmsg() 函数在发送来自 SCTP 端点的消息时启用高级 SCTP 功能。 s 此值指定发送消息的 SCTP 端点。 msg 此值包含 sctp_sendmsg() 函数所发送的消息。 len 此值为消息的长度以字节为单位。 to 此值为消息的目标地址。 tolen 此值为目标地址的长度。 ppid 此值为应用程序指定的有效负荷协议标识符。 stream_no 此值为此消息的目标流。 timetolive 此值为消息未能成功发送到对等方的情况下消息过期之前可以等待的时间段以毫秒为单位。 context 如果在发送消息时出现错误则返回此值。 flags 此值在将逻辑运算 OR 以按位形式应用于以下零个或多个标志位时形成 MSG_UNORDERED 设置此标志之后sctp_sendmsg() 函数将无序传送消息。 MSG_ADDR_OVER 设置此标志之后sctp_sendmsg() 函数将使用 to 参数中的地址而不使用关联的主要目标地址。此标志仅用于一对多风格 SCTP 套接字。 MSG_ABORT 设置此标志之后指定的关联将异常中止同时向其对等方发送 ABORT 信号。此标志仅用于一对多风格 SCTP 套接字。 MSG_EOF 设置此标志之后指定的关联将进入正常关机状态。此标志仅用于一对多风格 SCTP 套接字。 MSG_PR_SCTP 设置此标志之后如果消息传输未在 timetolive 参数所指定的时间段内成功完成则消息将过期。 sctp_sendmsg() 函数将返回其发送的字节数。sctp_sendmsg() 函数将在出现错误时返回 -1。 如果在 s 参数中传递的文件描述符无效则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EBADF。如果在 s 参数中传递的文件描述符没有描述套接字则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 ENOTSOCK。如果 flags 参数包括值 MSG_OOB则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EOPNOTSUPP。如果一对一风格套接字的 flags 参数包括 MSG_ABORT 或 MSG_EOF值则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EOPNOTSUPP。如果没有建立关联则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 ENOTCONN。如果套接字关闭禁止进一步写入则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EPIPE。如果套接字为非阻止套接字并且传输队列已满则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EAGAIN。 如果控制消息长度不正确则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EINVAL。如果指定的目标地址不属于关联则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EINVAL。如果 stream_no 的值不在关联所支持的外发流数之内则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EINVAL。如果所指定的目标地址的地址族不是 AF_INET 或 AF_INET6则 sctp_sendmsg() 函数将失败并将 errno 的值设置为 EINVAL。 sctp_send()
ssize_t sctp_send(int
s
, const void
*msg
, size_t
len
, const struct sctp_sndrcvinfo
*sinfo
, int
flags
); sctp_send() 函数可供一对一及一对多风格套接字使用。sctp_send() 函数在发送来自 SCTP 端点的消息时启用高级 SCTP 功能。 s 此值指定 socket() 函数所创建的套接字。 msg 此值包含 sctp_send() 函数所发送的消息。 len 此值为消息的长度以字节为单位。 sinfo 此值包含用于发送消息的参数。对于一对多风格套接字此值可以包含消息所发送到的关联 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。如果一对一风格套接字中 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。 分叉关联 应用程序可以将一对多风格套接字上已建立的关联分叉为独立的套接字和文件描述符。对于具有多个偶发消息发送者或接收者的应用程序如果这些发送者或接收者需要存在于原始一对多风格套接字之下则独立的套接字和文件描述符非常有用。应用程序会将传输大量数据通信流量的关联分叉为独立的套接字描述符。应用程序使用 sctp_peeloff() 调用将关联分叉为独立的套接字。新套接字为一对一风格套接字。sctp_peeloff() 函数的语法如下
int sctp_peeloff(int
sock
, sctp_assoc_t
id
); sock 从 socket() 系统调用返回的原始一对多风格套接字描述符 id 要分叉为独立的文件描述符的关联的标识符 如果在 sock 参数中传递的套接字描述符不是一对多风格 SCTP 套接字则 sctp_peeloff() 函数将失败并返回 EOPTNOTSUPP。如果 id 的值为 0 或者 id 的值大于在 sock 参数中传递的套接字描述符的最大关联数则 sctp_peeloff() 函数将失败并返回 EINVAL。如果 sctp_peeloff()函数无法创建新的用户文件描述符或文件结构则此函数将失败并返回 EMFILE。 sctp_getpaddrs() sctp_getpaddrs() 函数将返回关联中的所有对等地址。
int sctp_getpaddrs(int
sock
, sctp_assoc_t
id
, void
**addrs
); 当 sctp_getpaddrs() 函数成功返回时**addrs 参数的值将指向每个地址相应类型的动态分配的压缩 sockaddr 结构数组。调用线程使用 sctp_freepaddrs() 函数释放内存。**addrs 参数的值不能为 NULL。如果 sock 中给定的套接字描述符用于 IPv4 套接字则 sctp_getpaddrs() 函数将返回 IPv4 地址。如果 sock 中给定的套接字描述符用于 IPv6 套接字则 sctp_getpaddrs() 函数将同时返回 IPv4 和 IPv6 地址。对于一对多风格套接字id 参数指定要查询的关联。对于一对一风格套接字sctp_getpaddrs() 函数将忽略 id 参数。当 sctp_getpaddrs() 函数成功返回时它将返回关联中的对等地址数。如果此套接字上没有关联则 sctp_getpaddrs() 函数将返回 0并且不定义 **addrs 参数的值。如果出现错误则 sctp_getpaddrs() 函数将返回 -1并且不定义 **addrs 参数的值。 如果 sock 参数中传递给 sctp_getpaddrs() 函数的文件描述符无效则 sctp_getpaddrs() 函数将失败并返回 EBADF。如果 sock 参数中传递给 sctp_getpaddrs() 函数的文件描述符没有描述套接字则 sctp_getpaddrs() 函数将失败并返回 ENOTSOCK。如果 sock 参数中传递给 sctp_getpaddrs() 函数的文件描述符描述了未连接的套接字则 sctp_getpaddrs() 函数将失败并返回 ENOTCONN。 sctp_freepaddrs() sctp_freepaddrs() 函数将释放所有由之前的 sctp_getpaddrs() 调用所分配的资源。sctp_freepaddrs() 函数的语法如下
void sctp_freepaddrs(void
*addrs
); *addrs 参数为包含 sctp_getpaddrs() 函数所返回的对等地址的数组。 sctp_getladdrs() sctp_getladdrs() 函数将返回套接字上的所有本地绑定的地址。sctp_getladdrs() 函数的语法如下
int sctp_getladdrs(int
sock
, sctp_assoc_t
id
, void
**addrs
); 当 sctp_getladdrs() 函数成功返回时addrs 的值将指向动态分配的压缩 sockaddr 结构数组。sockaddr 结构为每个本地地址的相应类型。调用应用程序使用 sctp_freeladdrs() 函数释放内存。addrs 参数的值不能为 NULL。 如果 sd 参数引用的套接字为 IPv4 套接字则 sctp_getladdrs() 函数将返回 IPv4 地址。如果 sd 参数引用的套接字为 IPv6 套接字则 sctp_getladdrs() 函数将同时返回相应的 IPv4 或 IPv6 地址。 针对一对多风格套接字调用 sctp_getladdrs() 函数时id 参数的值指定要查询的关联。sctp_getladdrs() 函数在一对一套接字上运行时将忽略 id 参数。 当 id 参数的值为 0 时无论为何种特定关联sctp_getladdrs() 函数都将返回本地绑定的地址。当 sctp_getladdrs() 函数成功返回时它将报告绑定到套接字的本地地址数。如果未绑定套接字则 sctp_getladdrs() 函数将返回 0并且不定义 *addrs 的值。如果出现错误则 sctp_getladdrs() 函数将返回 -1并且不定义 *addrs 的值。 sctp_freeladdrs() sctp_freeladdrs() 函数将释放所有由之前的 sctp_getladdrs() 调用所分配的资源。sctp_freeladdrs() 函数的语法如下
void sctp_freeladdrs(void
*addrs
); *addrs 参数为包含 sctp_getladdrs() 函数所返回的对等地址的数组。