0

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

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 美分操作系统:5.7

4

3 回答 3

0

问题在于 IPv6 配置。SCTP 协议实现需要启用 IPv6。一旦启用,我们的程序就可以工作了。

于 2014-05-29T04:54:26.320 回答
0

SCTP 套接字有两种类型:一对一套接字和一对多套接字。要创建 SCTP 套接字,您应该指定:

  • 一对一:AF_INET 系列、SOCK_STREAM 类型和 IPPROTO_SCTP 协议

  • 一对多:AF_INET 系列、SOCK_SEQPACKET 类型和 IPPROTO_SCTP 协议

由于 errno 93 是“不支持协议”,请尝试使用 SOCK_SEQPACKET:

int sock_fd = Socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);
于 2014-05-27T14:55:50.757 回答
0

我认为你应该安装 lksctp,错误 93 是“不支持协议”

于 2017-06-05T06:25:44.600 回答