首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何激活iOS中的蜂窝无线电,因为bsd-套接字不会自动激活它

如何激活iOS中的蜂窝无线电,因为bsd-套接字不会自动激活它
EN

Stack Overflow用户
提问于 2014-07-30 19:58:46
回答 3查看 1.7K关注 0票数 8

我打算用C编写一个跨平台库,它需要做一些联网工作。我看到iOS支持套接字,但是站点警告不要使用POSIX套接字:

在iOS中,POSIX网络不被鼓励,因为它不激活蜂窝无线电或按需虚拟专用网。因此,作为一般规则,您应该将网络代码与任何公共数据处理功能分离开来,并使用更高级别的API重写网络代码。

然而,它也表明POSIX套接字是跨平台的一个很好的选择。因为POSIX套接字不会自动激活蜂窝收音机,所以我需要自己去做,对吧?是否有更好的方法来做到这一点,而不是简单地打开一个更高级别的api和关闭连接的手?

EN

回答 3

Stack Overflow用户

发布于 2014-12-09 09:29:03

同样的尝试,尽管文档说较低级别的API不会激活蜂窝无线电和按需VPN,但对于TCP连接来说,这并不是完全正确的。

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

对于TCP,您可以在iOS设备上使用服务器端代码的低级APIs,这确实激活蜂窝无线电或按需VPN,但是对于iOS设备上的客户端代码,最好使用已经提供的更高级别的APIs。无论哪种方式,无线电都是活动的,您不必担心数据包没有被发送。

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

票数 6
EN

Stack Overflow用户

发布于 2015-01-05 13:33:51

对于TCP网络,苹果似乎建议使用CFStream。见参考文件/doc/uid/CH73 73-SW4

票数 0
EN

Stack Overflow用户

发布于 2018-06-08 14:54:43

苹果公司发布了一个新的网络框架,允许对使用哪台收音机(蜂窝或WiFi)进行细粒度控制。因此,您可能需要创建一个NWConnection,并使用NWParametersrequiredInterfaceprohibitedInterfaces属性控制无线电的使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25045829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档