无法打开套接字类型 SOCK_DGRAM 的 SCTP 套接字

Cannot open SCTP Socket with socket type SOCK_DGRAM

int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_SCTP);

返回的错误在 CentOS 3.2.63 上是 93,在 windows8 上是 10043,这意味着协议不受支持。但是我可以成功打开套接字类型 SOCK_RAW,SOCK_STREAM 的套接字。在 windows 8 中无法用 SOCK_SEQPACKET 打开,但在 CentOS 中可以打开。

SCTP 必须与 SOCK_SEQPACKET 或 SOCK_STREAM 一起使用。有关如何使用 SCTP 的更多详细信息,请参阅 Sockets API Extensions for the Stream Control Transmission Protocol (SCTP), RFC 6458

并非所有 OS 都支持 SCTP,即使现有支持也可能会遗漏一些功能。