iOS网络编程模型iOS网络编程层次结构也分为三层:lCocoa层:NSURL,Bonjour,GameKit,WebKitlCoreFoundation层:基于C的 ServiceslOS层:基于C的BSDsocketCocoa层:是最上层的基于Objective-C的API,比如URL访问,NSStream,Bonjour,GameKit等,这是大多数情况下我们常用的API。Cocoa层是基于CoreFoundation实现的。CoreFoundation层:因为直接使用socket需要更多的编程工作,所以苹果对OS层的socket进行简单的封装以简化编程任务。Services,work又是基于CFStream和CFSocket。OS层:最底层的BSDsocket提供了对网络编程最大程度的控制,但是编程工作也是最多的。因此,苹果建议我们使用CoreFoundation及以上层的API进行编程。work位于底层,但高效地处理协议栈的操作。BSD套接字提供了一些标准对象来方便操作,如与FTP和HTTP服务器通信,解析DNS主机地址。work就是以BSD套接字为基础。类似,一些cocoa类,如NSURL,使用标准网络协议与服务器通信,work为基础。除此之外,WebKit是一些cocoa类,显示窗口中的网络内容。而NSURL和WebKit都是高层之上,要自行处理网络协议。work框架与CoreFoundation框架的结构图:work的基础。套接字是网络通讯的基础,套接字可以连接到网络或是本地的另一个套接字,并允许数据传送。最通常的套接字抽象就是BSDSocket。CFSocket又是BSDSocket的抽象。CFSocket几乎包含BSDSocket的所有功能,而且将Socket融入run-loop中。CFSocket可以处理任何socket,甚至stream-basedsocket。CFStreamAPI提供了轻松的与设备无关的读写数据的能力。你可以为内存,文件,网络(使用套接字)的数据建立stream,可以使用stream而不必立即把所有数据都写入到内存中。stream,流,是一个在搭建的通讯通道里连续传送的字节序列。steam是单向的,所有有必要建立input(read)stream和output(write)stream。除了基于文件的stream,否则,stream中的数据一经取出消耗,就无法找到。CFStream就是对这些stream的抽象,并提供两种CFType类型:CFReadStream和CFWriteStream,他们都符合CoreFoundationAPI的规范。由图可以看出,CFStream是基于CFSocket,而且CFStream是CFFTP和CFHTTP的基础。work的一部分,而是CoreFoundation的一部分。workAPI可以拆成许多独立的API,可以独立使用,可以联合使用。DiagnosticsAPIASIHTTPRequest使用iOSSDK中的HTTP网络请求API,相当的复杂,调用很繁琐,workAPI进行了封装,并且使用起来非常简单的一套API,用Objective-C编写,可以很好的应用在MacOSX系统和iOS平台的应用程序中。ASIHTTPRequest适用于基本的HTTP请求,和基
iOS网络编程模型 来自淘豆网m.daumloan.com转载请标明出处.