【问题标题】:SCTP missing include file on OSX?SCTP 在 OSX 上缺少包含文件?
【发布时间】:2012-02-09 21:34:31
【问题描述】:

我在搞乱套接字,我想在我的 mac 上使用 SCTP 协议进行测试。

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

所以我做了一些挖掘,果然,Mac OSX Lion 上没有 netinet/sctp.h 的包含文件。为什么会这样,当我可以使用IPPROTO_SCTP 设置一个套接字时,它构建得很好?

所以,总而言之,我有两个问题:

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

【问题讨论】:

    标签: macos sockets networking include sctp


    【解决方案1】:

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

    【讨论】:

    • 有趣。那么这是否意味着我不能使用 SCTP 在我的 Mac 上设置客户端-服务器套接字?
    • 我担心没有库 - OS X 没有提供特定于 sctp 的函数,创建 IPPROTO_SCTP 套接字会导致 Protocol not supported 错误。
    • 为了完整起见,您可以在带有 3rd 方扩展的 OS X 上运行 SCTP:sctp.fh-muenster.de
    【解决方案2】:

    看起来你可以做到

    brew install libusrsctp
    

    您将在此处看到已安装的标头,尽管它可能是具有不同名称的不同实现:

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

    【讨论】:

      猜你喜欢
      • 2012-07-02
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2014-10-15
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      相关资源
      最近更新 更多