SCTP 在 OSX 上缺少包含文件?

Ric*_*III 5 sockets macos networking include sctp

我正在摆弄套接字,我想在我的 Mac 上使用 SCTP 协议进行测试。

但是,当我尝试包含该文件时,netinet/sctp.h编译器给出“文件未找到”错误。

所以我做了一些挖掘,果然,netinet/sctp.hMac OSX Lion 上没有包含文件。当我可以使用 建立套接字IPPROTO_SCTP并且构建良好时,为什么会这样?

所以,总结来说,我有两个问题:

  • Mac OSX 上 SCTP 的标头在哪里?
  • 如果没有正确的标头,我仍然可以设置 SCTP 服务器吗?如果是这样,怎么办?

Sim*_*nek 4

On Lion 的IPPROTO_SCTP定义是netinet/in.h- 这就是为什么它工作得很好,因为您可能netinet/in.h直接或间接包含在内。但是,它仅存在于 Lion 中,而不存在于任何早期的 OS X 版本中。(请注意,这netinet/sctp.h不是 POSIX 的一部分,我认为它不可移植)

  • 为了完整起见,您可以使用第 3 方扩展在 OS X 上运行 SCTP:http://sctp.fh-muenster.de/ (3认同)
  • 我担心没有库 - OS X 不提供特定于 sctp 的函数,并且创建“IPPROTO_SCTP”套接字会导致“协议不支持”错误。 (2认同)