iOS 网络高级编程一:越是基础越是高级

我们需要了解IOS的网络层:我们使用NSURL请求数据,服务器返回数据,然而是怎么发送的请求,如何接收的数据呢?,这其中的底层实现是什么样的,NSURL是如何向下一级调用的?
1.我们用到的NSURL 属于cocoa层
2.NSURL基于C的API:CFNetwork、CSNetServices。其中CFNework在CFStream和CFSocket之上提供了简单网络接口(我们最多只需要了解到这里就好了)。
3.CFNework是对BSD scoket的轻量封装
4.BSD scoket 可以调用无线硬件、这样就可以发送请求了
这里写图片描述

一、NSURLConnection
NSURLConnection是一个Coacoa级别的API,他提供一个简单地方法来加载URL,可以与Web Service交互、获取图片视频,他构建在NSStream之上

二、GameKit 这个很少用 建立在Bonjour之上

这里写图片描述

三、Bonjour是Apple对零配置网络的实现

四、NSStream是Coacoa级别的API,构建在CFNetwork之上、作为NSURLConnection的基础、旨在完成一些底层网络任务,用于与远程服务器或本地文件进行通信、他所发出的与接收的数据都位于C缓冲区、是异步的,通过NSStresmDelegate更新通信

五、CFNetwork基础构建在Core Foundation层的CFSocket和CFStream API之上

六、BSD Socket 是网络构架层次中的最底层,使用C实现、无法穿过系统范围的VPN,如果WiFi或是蜂窝移动网络被关闭了,即使调用BSD Socket也是无法自动激活的、苹果不推荐。

七、NSRunloop 运行循环是由类NSRunloop表示的,有些线程可以让操作系统唤醒睡眠的线程以管理到来的事件,而运行循环则是这些线程的基础组件,运行循环是这样一种循环,可以再一个周期内调度任务并处理到来的事件。ios 应用中的每一个线程最多只有一个运行循环,对于主线程来说,运行循环会为你开始,在didFinishLaunchingWithOptions方法调用之后就可以访问了~~~

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值