CFNetwork编程概要

本文是对官方文档的翻译,官方文档地址如下:
https://developer.apple.com/library/content/documentation/Networking/Conceptual/CFNetwork/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001132-CH1-DontLinkElementID_30

CFNetwork编程概要

CFNetwork是在内核服务框架中提供网络协议抽象的库。这些抽象可以方便我们操作诸如:

本文的组织

本文包括:

其他参考

除了苹果公司提供的文档之外,下面也是套接字编程的参考书:
UNIX Network Programming, Volume 1 (Stevens, Fenner and Rudoff)

===================================

CFNetwork概念

CFNetwork是一个底层高性能库,用来提供对协议栈的详细控制。他是对BSD套接字的扩展,CFNetwork是完全基于BSD套接字的。
这里写图片描述

何时使用CFNetwork

相比BSD套接字,CFNetwork有很多优势。它提供了run-loop集成,所以如果你的app是基于run-loop的的话那就无需实现线程。它还提供了很多类帮你使用网络协议。例如,你可以直接使用FTP协议,而无需实现所有的CFFTP API的细节。如果你理解网络协议并且需要获得网络协议的底层控制而不想实现他们,那么CFnetwork可能是正确的选择。
CFNetwork是基于网络协议的,基础API是基于数据访问的。关于基础API,可参考URL Session Programming Guide

CFNetwork基盘

CFNetwork主要提供了CFSocket和CFStream两组API。

CFSocket API

CFSocket将socket集成进入一个run loop,它不限于基于流的套接字(例如TCP),他可以处理任意类型的socket。

CFStream API

读写流提供了访问多种媒体进行数据交换的简单方式。
你可以从内存、文件、网络创建流,并且可以使用流而无需将所有数据加载入内存。
流是在一个通信路径上顺序传输的字节序列。流是单向的,除了基于文件的流之外,流内是无法检索的;一旦流被提供或者消费,是不可能重新获得的。
CFStream包括了CFReadStream和CFWriteStream
这里写图片描述
你可以像操作UNIX文件描述符一样读写流。首先,通过定义流类型(内存、文件或者socket)实例化流并且设置可选项。其次,打开流进行任意次读写。当流存在时,你可以得到流信息。流属性是流的任意信息,例如来源和目的地,它并不是实际读写数据的一部分。当你不再需要流时,关闭并释放它。

CFNetwork API 概念

CFFTP API
CFHTTP API
CFHTTPAuthentication API
CFHost API
CFNetDiagnostics API

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值