·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> 【读书笔记】iOS网络-底层网络

【读书笔记】iOS网络-底层网络

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了。最后,添加了另一层(NSStream)来封装CFNetwork,并且作为最基础的Objective-C网络API。大家更熟悉的类(比如NSURLConnection与UIWebView)都是非常易于使用的,而且能够通过很少的代码完成很多事情,这都是由于这些底层库所提供的坚实基础而实现的。

一,BSD Socket

Apple并不推荐这种方式,因为原始的Socket无法访问操作系统内建的网络特性(比如系统范围VPN)。更糟糕的是,初始化Socket连接并不会自动打开设备的Wi-Fi或是蜂窝无线电。无线电会智能地关闭以节省电池电量,任何通信连接都会失败,除非其他网络时程激活了无线电。CFNetwork对BSD Socket的封装可以激活设备的无线电,因此在几乎所有的场景中,我们都建议使用CFNetwrok,而非BSD Socket.

二,CFNetwork

CFNetworkd位于框架层次的更上一层,是对BSD Socket的一层轻量级封装。

三,NSStream

沿着框架层次再往上起鸡皮疙瘩就是NSStream了,它是针对CFNetwork API的Objective-C封装器。

四,总结。

框架层次越往上,代码就会越短越简单,不过,你却失去了一些能力,因为每个抽象层都隐藏了实际执行通信的原始网络Socket.

 

参考资料:《iOS网络高级编程-iphone和iPad的企业应用开发》