无法打开SCTP套接字

时间:2014-05-27 13:49:06

标签: sockets sctp

我想通过以下代码打开基本套接字:

SOCKET  s;
s=socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP); 
if(s==INVALID_SOCKET || s == SOCKET_ERROR) {
        printf("%d", errno);
        closesocket(s);
        return SOCKET_INIT_FAILED;
}

它返回的错误:93。

内核版本:2.6.18-238.el5 Cent OS:5.7

3 个答案:

答案 0 :(得分:0)

有两种类型的SCTP套接字:一个一对一套接字和一个一对多套接字。要创建SCTP套接字,您应指定:< / p>

  • 一对一:AF_INET系列,SOCK_STREAM类型和IPPROTO_SCTP protoccol

  • 一对多:AF_INET系列,SOCK_SEQPACKET类型和IPPROTO_SCTP protoccol

因为errno 93是&#34;协议不受支持&#34;然后尝试使用SOCK_SEQPACKET:

int sock_fd = Socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);

答案 1 :(得分:0)

问题在于IPv6配置。 SCTP协议实现需要启用IPv6。启用后,我们的程序正常运行。

答案 2 :(得分:0)

我认为你应该安装lksctp,错误93是&#34;不支持协议&#34;