我们正在编写一个网络库,支持基于 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 套接字是受支持的方法之一。 链接.
一些存档文档确实说,这是一种受支持的方法。 链接。但它是否仍然受支持,怎么知道?.
是的,这是允许的。
请参阅此苹果文档:
它说:
Apple 平台拥有广泛的网络 API,涵盖许多不同的框架:
如果您正在使用 watchOS,请阅读 TN3135:watchOS 上的低级网络 以了解其独特的限制。
传输层协议的建议:
NWConnection
(Swift) 或 nw_connection_t
(基于 C
语言)和 BSD 套接字。