iOS网络底层实现
来源:互联网 发布:白俄罗斯美女知乎 编辑:程序博客网 时间:2024/05/17 13:06
在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的企业应用开发》
阅读全文
0 0
- iOS网络底层实现
- 【读书笔记】iOS网络-底层网络
- iOS 实现底层并发
- iOS 底层实现 - KVC
- iOS 底层实现 - KVO
- iOS 底层实现 - UIScrollView
- iOS 底层实现 - UITableView
- iOS 底层实现 - Category
- iOS 底层实现 - Block
- IOS网络底层知识CFHTTP
- iOS网络底层之CFNetwok
- IOS底层网络之Socket
- iOS kvo 底层实现原理
- iOS KVO底层实现原理
- iOS开发KVO底层实现
- iOS-详解KVO底层实现
- IOS网络篇3之IOS底层网络架构详解
- Linux 网络编程及底层实现过程
- hibernate--List ,Oblect,Mapd不同的返回属性
- unity里使用AddComponentMenu添加自定义组件的一个隐藏坑
- 搜索 J题
- 目标跟踪相关资源(含模型,最新论文,代码,牛人等)
- 卡特兰数——Catalan数
- iOS网络底层实现
- js实现小特效 下拉菜单的折叠
- 使用阿里云服务器遇到的一些问题及解决办法
- 每个程序员都有责任去锻炼
- UIAppearence Protocol
- linux 下去掉^M
- RN 开发中android 版本升级步骤
- c语言文件读写相关函数
- 图像分割