gpt4 book ai didi

ios - 我如何在 iOS 中激活蜂窝 radio ,因为 bsd-sockets 不会自动激活它

转载 作者:可可西里 更新时间:2023-11-01 03:31:41 27 4
gpt4 key购买 nike

我打算用 C 编写一个跨平台库,这需要做一些网络。我看到 iOS 支持套接字,但 Apple 开发者网站警告不要使用 POSIX 套接字:

In iOS, POSIX networking is discouraged because it does not activate the cellular radio or on-demand VPN. Thus, as a general rule, you should separate the networking code from any common data processing functionality and rewrite the networking code using higher-level APIs.

然而,它也表明 POSIX 套接字是跨平台的不错选择。由于 POSIX 套接字不会自动激活蜂窝 radio ,我需要自己来做,对吗?有没有比简单地打开与更高级别的 api 的连接并事先关闭连接更好的方法?

最佳答案

正在尝试同样的事情,尽管文档说较低级别的 API 不会激活蜂窝 radio 和按需 VPN,但事实证明它对于 TCP 连接并不完全正确。

在 UDP 的情况下,这适用并且您的 UDP 数据包大部分时间都不会被发送。要解决这个问题,只需使用较低级别的 API 打开 TCP 的监听套接字,这将激活蜂窝 radio 或按需 VPN,并在完成后关闭套接字。

对于 TCP,您可以将低级 API 用于 iOS 设备上的服务器端代码,这会激活蜂窝 radio 或按需 VPN,但对于 iOS 设备上的客户端代码,最好使用更高级别的 API已提供。无论哪种方式, radio 都处于事件状态,您不必担心数据包未发送。

顺便说一句,这就是我目前正在做的事情。

关于ios - 我如何在 iOS 中激活蜂窝 radio ,因为 bsd-sockets 不会自动激活它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045829/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com