CocoaAsyncSocket 为 Mac 和 iOS 提供简单易用且强大的异步套接字库。以下是对这些类进行描述。
GCDAsyncSocket 和 AsyncSocket 是 TCP/IP 套接字网络库。以下是两个库中可用的一些关键特性
原生 objective-c,完全自包含在一个类中。
无需费心处理套接字或流。此类为您处理一切。
完整的代理支持
错误、连接、读取完成、写入完成、进度和断开连接将导致调用您的代理方法。
队列非阻塞读取和写入,可选的超时时间。
您告诉它要读取或写入什么,它为您处理一切。排队、缓冲和搜索流中的终止序列 - 所有这些都自动为您处理。
自动套接字接受。
启动服务器套接字,告诉它接受连接,并且它将为每个连接调用您的新实例。
支持 IPv4 和 IPv6 上的 TCP 流。
自动连接到 IPv4 或 IPv6 主机。使用此类的一个实例自动接受 IPv4 和 IPv6 上的传入连接。无需担心多个套接字。
支持 TLS/SSL
只需一个方法调用即可轻松保护您的套接字。适用于客户端和服务器套接字。
GCDAsyncSocket 基于 Grand Central Dispatch 构建
完全基于 GCD 和线程安全
它完全在其自己的 GCD dispatch_queue 中运行,并且完全线程安全。此外,所有代理方法都会异步调用到您选择的 dispatch_queue 上。这意味着并行操作套接字代码和代理/处理代码。
最新的技术和性能优化
库内部利用了如 kqueue 等技术来限制系统调用并优化缓冲区分配。换句话说,峰值性能。
AsyncSocket 包装 CFSocket 和 CFStream
GCDAsyncUdpSocket 和 AsyncUdpSocket 是 UDP/IP 套接字网络库。以下是两个库中可用的一些关键特性
原生 objective-c,完全自包含在一个类中。
无需费心处理底层套接字。此类为您处理一切。
完整的代理支持。
错误、发送完成、接收完成和断开连接都会导致调用您的代理方法。
队列非阻塞发送和接收操作,可选的超时时间。
您告诉它发送或接收什么,它帮您处理所有事情。排队、缓冲、等待和检查errno - 所有这些都会自动为您处理。
支持IPv4和IPv6。
自动使用IPv4和/或IPv6进行发送/接收。不再担心多个套接字。
GCDAsyncUdpSocket基于Grand Central Dispatch构建
AsyncUdpSocket包装了CFSocket
在wiki文章中找不到您的问题答案? try the mailing list.
喜欢这个项目吗?想请我喝杯咖啡吗?(或者啤酒 :D)