POSIX C 网络/BSD 套接字 API 是 iOS、iPadOS、tvOS 等 Apple 平台支持的 API 吗?

问题描述 投票:0回答:1

我们正在编写一个网络库,支持基于 UDP 的专有协议的端点之间的通信。我们不仅希望为 Apple 平台构建该库,还希望为其他非 Apple 平台(如 Windows、Linux、Android 等)构建该库。考虑到这一点,我们的一个选择是使用 POSIX C 网络/BSD 套接字 API。

Apple 文档中没有明确说明的一件事是 - 我们可以使用 BSD 套接字 API 并且它可以在大多数 Apple 平台上工作。

他们确实提到它不适用于 watchOS 9 及以上版本。 链接

The BSD sockets API doesn’t work for networking on watchOS under any circumstances. Use Network framework instead.

但他们在最新文档中没有提到 BSD 套接字是受支持的方法之一。 链接.

一些存档文档确实说,这是一种受支持的方法。 链接。但它是否仍然受支持,怎么知道?.

ios macos tvos watchos ipados
1个回答
0
投票

是的,这是允许的。

请参阅此苹果文档

它说:
Apple 平台拥有广泛的网络 API,涵盖许多不同的框架:

  • 基金会,
  • 网络,
  • 系统框架中的 BSD 套接字,
  • 还有更多

如果您正在使用 watchOS,请阅读 TN3135:watchOS 上的低级网络 以了解其独特的限制。

传输层协议的建议:

  1. 对于 TCP 和 UDP,您有两个合理的选择: 网络 使用
    NWConnection
    (Swift) 或
    nw_connection_t
    (基于 C 语言)和 BSD 套接字。
  2. 网络框架是迄今为止最好的选择。如果您有兼容性限制,BSD Sockets 是一个可以接受的选择,例如:编写跨平台代码时。或者当使用基于 BSD 套接字的现有库时。
© www.soinside.com 2019 - 2024. All rights reserved.