CocoaAsyncSocket 中文文档
CocoaAsyncSocket
CocoaAsyncSocket为Mac和iOS提供了易于使用和功能强大的异步套接字库。这些类的介绍如下。
安装
CocoaPods 安装
如使用CocoaPods安装,请将此行添加到您的Podfile文件中
use_frameworks! # 如果您的目标是iOS 8或使用Swift,请添加此项
pod 'CocoaAsyncSocket'
Carthage 安装
CocoaAsyncSocket与Carthage兼容。
要包含它,请将以下行添加到Cartfile中
github "robbiehanson/CocoaAsyncSocket" "master"
该项目目前已为iOS,tvOS和Mac的构建做了配置。
在与Carthage一起构建之后,生成的框架将存储在:
Carthage/Build/iOS/CocoaAsyncSocket.framework
Carthage/Build/tvOS/CocoaAsyncSocket.framework
Carthage/Build/Mac/CocoaAsyncSocket.framework
选择正确的框架并将其拖入您的项目中。
手动添加
您也可以通过直接添加源文件将它包含到您的项目中,但您应该使用依赖项管理器来保持最新。
导入
使用 Objective-C:
// When using iOS 8+ frameworks
@import CocoaAsyncSocket;
// OR when not using frameworks, targeting iOS 7 or below
#import "GCDAsyncSocket.h" // for TCP
#import "GCDAsyncUdpSocket.h" // for UDP
使用 Swift:
import CocoaAsyncSocket
TCP
GCDAsyncSocket是在Grand Central Dispatch(GCD)之上构建的TCP / IP套接字网络库。以下是可用的主要功能:
-
原生OC,完全自包含在一个类中。
无需使用套接字或流。这个类为你处理所有事情。 -
完整的代理支持。
错误,连接,读取完成,写入完成,进度和断开连接都会调用相应的委托方法。 -
队列,非阻塞读取和写入,可选超时等。.
你告诉它读什么或写什么,它为你处理所有事情。队列中的排队,缓冲和搜索终止序列 —— 全部自动为您处理。 -
自动接收套接字.
分离一个服务器套接字,告诉它接受连接,并且它会为每个连接调用自己的新实例。 -
支持通过IPv4和IPv6的TCP流。
自动连接到IPv4或IPv6主机。使用此类的单个实例自动接受IPv4和IPv6上的传入连接。不再担心多个套接字。 -
支持 TLS / SSL
只需调用一个方法即可轻松保护套接字。可用于客户端和服务器套接字。 -
完全基于GCD并保证线程安全
全程在它自己的GCD dispatch_queue中运行,并且确保是线程安全的。此外,委托方法都是异步调用到您选择的dispatch_queue上的。这意味着您的套接字代码和您的代理/处理代码是并行操作的。 -
使用最新的技术并对性能进行了优化
库内部利用了诸如kqueue's技术来限制系统调用,并优化缓冲区分配。换句话说,已达到最佳性能。
UDP
GCDAsyncUdpSocket是在Grand Central Dispatch(GCD)之上构建的UDP / IP套接字网络库。以下是可用的主要功能:
-
原生 OC 代码,所有功能都包含在一个类中.
无需使用底层套接字。这个类为你处理所有事情。 -
完整的代理支持.
错误,发送完成,接收完成和断开都会通过代理进行回调。 -
队列非阻塞的发送和接收操作,可选超时。.
你告诉它要发送或接收什么,它将为你处理所有事情。排队,缓冲,等待和检查errno ——全部为您自动处理。 -
支持 IPv4 and IPv6.
使用IPv4和/或IPv6自动发送/ 接收。不再担心多个套接字。
- 完全基于 GCD ,并保证线程安全
它完全在自己的GCD dispatch_queue中运行,并且保证是线程安全的。此外,代理方法都是异步回调到您选择的dispatch_queue上的。这意味着您的套接字代码和您的代理/处理代码是并行操作的。