CocoaAsyncSocket 7.6.5

CocoaAsyncSocket 7.6.5

测试已测试
语言语言 Obj-CObjective C
许可证 NOASSERTION
发布最新发布2020年12月

Robbie HansonDmytro VorobiovChris Ballinger 维护。



  • 作者
  • Dustin Voss 和 Robbie Hanson

CocoaAsyncSocket

Build Status Version Status Carthage compatible Platform license Public Domain

CocoaAsyncSocket 为 macOS、iOS 和 tvOS 提供了易于使用且功能强大的异步套接字库。下面将介绍类。

安装

CocoaPods

使用 CocoaPods 安装,将以下行添加到 Podfile 中

use_frameworks! # Add this if you are targeting iOS 8+ or using Swift
pod 'CocoaAsyncSocket'  

Carthage

CocoaAsyncSocket 适用于 Carthage。为了包含它,将以下行添加到您的 Cartfile

github "robbiehanson/CocoaAsyncSocket" "master"

项目当前配置为为 iOStvOSMac 构建项目。使用 Carthage 构建后,生成的框架将存储在

  • Carthage/Build/iOS/CocoaAsyncSocket.framework
  • Carthage/Build/tvOS/CocoaAsyncSocket.framework
  • Carthage/Build/Mac/CocoaAsyncSocket.framework

选择正确的框架并将其拖入您的项目。

Swift 包管理器

简单地将包依赖项添加到您的 Package.swift 中,并在必要的目标中依赖 "CocoaAsyncSocket"。

dependencies: [
    .package(url: "https://github.com/robbiehanson/CocoaAsyncSocket", from: "7.6.4")
]

手动

您也可以直接添加源文件将其包含到项目中,但最好使用依赖管理器以保持更新。

导入

使用 Objective-C

// When using Clang Modules:
@import CocoaAsyncSocket; 

// or when not:
#import "GCDAsyncSocket.h" // for TCP
#import "GCDAsyncUdpSocket.h" // for UDP

使用 Swift

import CocoaAsyncSocket

TCP

GCDAsyncSocket 是一个基于 Grand Central Dispatch 构建的 TCP/IP 套接字网络库。以下是可用的关键特性:

  • 原生 Objective-C,完全封装在一个类中。
    无需与套接字或流打交道。此类为您处理所有工作。

  • 完整的代理支持
    错误、连接、读取完成、写入完成、进度和断开连接都将调用您的代理方法。

  • 带可选超时的队列非阻塞读取和写入。
    您告诉它读取或写入什么,然后它为您处理所有工作。排队、缓冲以及在流中搜索终止序列 - 均自动为您处理。

  • 自动套接字接受。
    启动服务器套接字,告诉它接受连接,并为每个连接调用您的新实例本身。

  • 支持 IPv4 和 IPv6 上的 TCP 流
    自动连接到 IPv4 或 IPv6 主机。使用此类的一个实例自动接受通过 IPv4 和 IPv6 的传入连接。无需再担心多个套接字。

  • 支持 TLS / SSL
    只需一个方法调用即可轻松保护您的套接字。适用于客户端和服务器套接字。

  • 基于 GCD 和线程安全
    它完全在其自己的 GCD dispatch_queue 中运行,并且是完全线程安全的。此外,所有的代理方法都将异步调用到您选择的 dispatch_queue。这意味着您的套接字代码和代理/处理代码的并行操作。

UDP

GCDAsyncUdpSocket是一个基于Grand Central Dispatch构建的UDP/IP套接字网络库。以下是可用的关键特性:

  • 原生 Objective-C,完全封装在一个类中。
    无需与底层套接字纠缠。此类为你处理一切。

  • 全面支持委托。
    错误、发送完成、接收完成和断开连接都将调用你的委托方法。

  • 队列的非阻塞发送和接收操作,可选的超时。
    你告诉它要发送或接收的内容,它为你处理一切。排队、缓冲、等待和检查errno——所有这些都会自动处理。

  • 支持IPv4和IPv6。
    自动使用IPv4和/或IPv6发送/接收。无需再担心多个套接字。

  • 基于 GCD 和线程安全
    它完全在其自己的 GCD dispatch_queue 中运行,并且是完全线程安全的。此外,所有的代理方法都将异步调用到您选择的 dispatch_queue。这意味着您的套接字代码和代理/处理代码的并行操作。


对于那些新接触网络的用户,建议你阅读该维基百科
套接字的工作方式可能并不完全像你想的那样...

还有疑问? 尝试访问 CocoaAsyncSocket邮件列表


喜欢这个项目?要不要买我☕️? (或者是一杯🍺  😀?)

donation-bitcoin donation-paypal