OSX中缺少SCTP包含文件?

4

我正在处理套接字相关的内容,并且想要在我的Mac上测试使用SCTP协议。

然而,当我尝试包含文件netinet/sctp.h时,编译器会给出“文件未找到”的错误提示。

所以我进行了一些调查,结果发现在Mac OSX Lion上没有netinet/sctp.h的包含文件。但是,如果我能够使用IPPROTO_SCTP建立套接字并使其构建成功,那么问题出在哪里呢?

因此,总结起来,我有两个问题:

  • SCTP在Mac OSX上的头文件在哪里?
  • 如果没有正确的头文件,我是否仍然可以设置SCTP服务器?如果可以,应该如何操作?
2个回答

4
在Lion系统中,IPPROTO_SCTP被定义在netinet/in.h中 - 所以如果您直接或间接地包含了netinet/in.h,那么它应该工作得很好。然而,在早期版本的OS X中,它并不存在,只有在Lion中才有。需要注意的是,netinet/sctp.h不是POSIX的一部分,我认为它不可移植。

有趣。这是否意味着我不能在我的Mac上使用SCTP来建立客户端-服务器套接字? - Richard J. Ross III
2
我并不担心没有库——OS X没有提供任何针对SCTP的特定函数,创建IPPROTO_SCTP套接字会导致“协议不支持”的错误。 - Simon Urbanek
3
为了完整起见,您可以使用第三方扩展在OS X上运行SCTP:http://sctp.fh-muenster.de/。 - Simon Urbanek

0

看起来你可以做到

brew install libusrsctp

你会在这里看到已安装的标题,尽管它可能是具有不同名称的不同实现:

cat /usr/local/Cellar/libusrsctp/0.9.5.0/include/usrsctp.h

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接