CocoaAsyncSocket项目是一个成熟的开源框架,自2003年以来一直存在。因此,它已受益于提交了代码或建议功能的广大网络开发人员。该项目的目标是创建功能强大且易于使用的套接字库。
GCDAsyncSocket
GCDAsyncSocket是基于Grand Central Dispatch构建的TCP套接字库,向上封装出简单易用的OC接口,给Mac和iOS开发者提供了强大的、易于使用的功能。
GCDAsyncSocket.m文件大概有8000多行代码,封装有GCDAsyncSocketPreBuffer(数据预缓存区)、GCDAsyncReadPacket(数据读取)、GCDAsyncWritePacket(数据写入)、GCDAsyncSpecialPacket(开启TLS后使用)、GCDAsyncSocket等类的实现。可用于客户端的连接及服务器端的搭建。
GCDAsyncSocket的具体特点包括:
支持经典的委托样式。
以下所有操作都会导致调用委托方法:连接、接受、读取完成、写入完成、进度、断开连接、错误等。委托方法包含一个套接字参数,允许您区分多个实例。委托调度。
每个委托方法都会在一个可配置的dispatch_queue上调用。这允许并行套接字IO和数据处理,以及简单的线程安全性。排队的非阻塞读写操作,具有可选超时。
您告诉它要读取或写入的内容,完成后它将通知您。socket自动接受。
如果您告诉它接受连接,它将通知您每个连接的新实例。当然,您可以立即断开它们的连接。自动支持IPv4和IPv6。
支持SSL / TLS。
基于最新的技术,如kqueues和GCD。
自成一类。
您不需要到处处理流或套接字。该类处理所有这些。
GCDAsyncSocket是线程安全的。
GCDAsyncUdpSocket
UDP套接字库。