SCTP 库的简述和代码 (5)
用户接口设计 设计需求: 接口API, RFC4960有规范, 基本上按照设计就可以了. 需要考虑的地方时, 1. 提供简化的接口,方便懒人. 2. 由于设计此SCTP库的目的是用于p2p传输, 所以,要考虑方便服务于p2p的库. 定义了一个如下回调函数表, 当有连接请求或数据到达时, 回调. typedef struct sctp_call_back_ { sctp_pkg_snd_fn sctp_pkg_snd; data_received_fn data_received_cb; sctp_assoc_up_fn assoc_up_cb; sctp_assoc_down_fn assoc_down_cb; sctp_retrieve_fn retrieve_cb; sctp_debug_fn debug_cb; }sctp_call_back; sctp_pkg_snd 是可选的参数, 如果你想对数据的发送方法做特殊处理, 可以覆盖库的缺省动作. 如果不设置此函数,那么, 将直接发送到对方IP地址:接收SCTP包的UDP端口. data_received_cb, 有SCTP包到达时被触发. retrieve_cb, sctp一个流断掉后, 没有确认的数据包可以用此函数提取, 保证高可靠性. 接口API: 入参, udp_port, 用于sctp流的udp端口. ctx, 可选