测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | 自定义 |
发布最后发布 | 2016年11月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由Jongdeog Lee维护。
CocoaAsyncSocket为Mac和iOS提供易于使用且功能强大的异步套接字库。以下是对类进行描述。
使用CocoaPods通过将以下行添加到您的Podfile中来安装
use_frameworks! # Add this if you are targeting iOS 8+ or using Swift
pod 'CocoaAsyncSocket'
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
GCDAsyncSocket是基于Grand Central Dispatch构建的TCP/IP套接字网络库。以下是可用的关键功能:
原生Objective-C,完整包含在一个类中。
无需与套接字或流纠缠。此类为您处理一切。
完整的代理支持
错误、连接、读取完成、写入完成、进度和断开连接都会导致调用您的代理方法。
带有时限的队列非阻塞读取和写入
您告诉它要读取或写入的内容,它将为您处理所有内容。排队、缓冲和自动流中终止序列的搜索 - 所有这些都将自动为您处理。
自动套接字接受
启动服务器套接字,让它接受连接,它将为每次连接调用您的新实例。
支持IPv4和IPv6上的TCP流
自动连接IPv4或IPv6主机。使用此类单例自动接受IPv4和IPv6上的传入连接。不再需要担心多个套接字。
支持TLS / SSL
轻松使用单一方法调用来保护你的套接字。适用于客户端和服务器套接字。
完全基于GCD且线程安全
完全在使用自己的GCD dispatch_queue内运行,并且完全线程安全。此外,所有委托方法都会异步地在您选择的dispatch_queue上调用。这意味着套接字代码和您的委托/处理代码的并行运行。
GCDAsyncUdpSocket是基于Grand Central Dispatch构建的UDP/IP套接字网络库。以下是可用的关键特性
原生Objective-C,完整包含在一个类中。
无需手动处理低级套接字。此类为您处理一切。
完整的委托支持。
错误、发送完成、接收完成和断开连接都会导致调用您的委托方法。
带可选超时的队列非阻塞发送和接收操作。
您告诉它发送或接收什么,它为您处理一切。排队、缓冲、等待和检查errno - 所有这些都会自动处理。
支持IPv4和IPv6。
自动使用IPv4和/或IPv6进行发送/接收。不再需要担心多个套接字。
完全基于GCD且线程安全
完全在使用自己的GCD dispatch_queue内运行,并且完全线程安全。此外,所有委托方法都会异步地在您选择的dispatch_queue上调用。这意味着套接字代码和您的委托/处理代码的并行运行。
对于网络新手,建议您阅读Wiki。
套接字可能不会完全如您想象的那样工作……
还有问题吗?试试CocoaAsyncSocket邮件列表。
喜欢这个项目?想买给我