介绍
- 每个iOS应用都位于某个网络框架栈之上,网络框架栈由4层组成。最上层是Cocoa层,包含了用于加载的OC API,Bonjour与gameKit。cocoa层下面是core foundation层,是一套C语言API,包含了CFNetwork,这是大多说应用级网络代码的基础。CFNetwork和CFStream在CFSocket之上提供了一个简单的网络接口,这两个类是针对BSD socket轻量级封装,后者形成了最下面的层,与无线硬件最为接近。BSD socket严格使用C语言来实现,向开发者提供了与远程设备或者服务器进行通讯的完全控制能力。
- BSD的原始socket无法访问系统范围的VPN,也无法激活WiFi和蜂窝无线电,这些CFNwtwork已经帮我们处理好了
iOS网络API
NSURLConnection
- cocoa级别的API,提供了一些简单的方法来加载URL请求,可以与web service进行交互、获取图片或者视频或者只是简单的获得一个格式化的HTML文档。
- 构建与NSStrem之上,支持文件、HTTP、HTTPS、FTP
- 默认情况下请求是异步的,不过有一个便捷的方法可以发送同步请求
Game Kit
- 核心在于为iOS提供了另一个点到点的网络选项
- 在传统网络中,构建与 Bonjour之上
- 不需要网络基础就可以使用,他可以创建自组的Bluetooth Personal Area Networks(PAN),在没有基础网络设施的地方,是非常好的网络候选者。
- 只需要会话标示符、显示名与连接模式即可,不需要socket配置或者任何其它底层网络就可以实现连接点之间的通讯。
- 通过GKSessonDelegate协议进行通讯
- P27
未完待续