NSStream与CFStream是iOS封装的应用于网络编程的两个对象,其中CFStream位于CoreFoundation层,NSStream位于Foundation层。NSStream是在CFStream基础之上做的封装,两者之间的许多数据结构可以桥接。例如NSInputStream与CFReadStreamRef,NSOutputStream与CFWriteStreamRef。通过桥接,两个框架之间的不同对象可以混合使用。
NSStream流操作与文件流操作很类似, 我们首先创建和设置流,接着打开流,然后读写流,读取流也是调用相关的read方法,在流存在时还可以通过查询流的相关属性来读取流的相关信息,在流使用完毕后关闭流。
流操作的步骤主要如下:
(1)创建相关的输入流与输出流
(2) 将流加入到runloop,防止当流中没有数据时候,阻塞当前线程
(3) 设置回调代理
(4) 调用open方法打开流
(5) 在代理的回调方法里处理各种流事件