CFNetwork初步

首先看张图:
CFNetwork初步_第1张图片
 此乃MAC OS X系统中CFNetwork和其余软件层的结构图。
CFNetwork位于底层,但高效地处理协议栈的操作。BSD套接字提供了一些标准对象来方便操作,如与FTP和HTTP服务器通信,解析DNS主机地址。而CFNetwork就是以BSD套接字为基础。
类似,一些cocoa类,如NSURL,使用标准网络协议与服务器通信,就是以CFNetwork为基础。
除此之外,Web Kit是一些cocoa类,显示窗口中的网络内容。而NSURL和Web Kit都是高层之上,要自行处理网络协议。因此,结构如上图。

下图是CFNetwork框架与Core Foundation框架的结构图:
 CFSocket API和CFStream API是CFNetwork的基础。套接字是网络通讯的基础,套接字可以连接到网络或是本地的另一个套接字,并允许数据传送。最通常的套接字抽象就是BSD Socket。CFSocket又是BSD Socket的抽象。CFSocket几乎包含BSD Socket的所有功能,而且将Socket融入run-loop中。CFSocket可以处理任何socket,甚至stream-based socket。
CFStream API提供了轻松的与设备无关的读写数据的能力。你可以为内存,文件,网络(使用套接字)的数据建立stream,可以使用stream而不必立即把所有数据都写入到内存中。
stream,流,是一个在搭建的通讯通道里连续传送的字节序列。steam是单向的,所有有必要建立input(read) stream和output(write) stream。除了基于文件的stream,否则,stream中的数据一经取出消耗,就无法找到。
CFStream就是对这些stream的抽象,并提供两种CFType类型:CFReadStream 和 CFWriteStream,他们都符合Core Foundation API的规范。
由图可以看出,CFStream是基于CFSocket,而且CFStream是CFFTP和CFHTTP的基础。而CFStream却不是CFNetwork的一部分,而是Core Foundation的一部分。

CFNetwork API简介:
CFNetwork API可以拆成许多独立的API,可以独立使用,可以联合使用。
CFFTP API
CFHTTP API
CFHTTPAuthentication API
CFHost API
CFNetServices API
CFNetDiagnostics API


英文文档地址:
http://developer.apple.com/library/ios/#documentation/Networking/Conceptual/CFNetwork/Concepts/Concepts.html%23//apple_ref/doc/uid/TP30001132-CH4-SW10

你可能感兴趣的:(CFNetwork初步)