您的当前位置:首页正文

CocoaAsyncSocket 中文文档

来源:华拓网

CocoaAsyncSocket 中文文档

CocoaAsyncSocket

CocoaAsyncSocket为Mac和iOS提供了易于使用和功能强大的异步套接字库。这些类的介绍如下。

安装

CocoaPods 安装

如使用CocoaPods安装,请将此行添加到您的Podfile文件中

use_frameworks! # 如果您的目标是iOS 8或使用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

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

手动添加

您也可以通过直接添加源文件将它包含到您的项目中,但您应该使用依赖项管理器来保持最新。

导入

使用 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上的。这意味着您的套接字代码和您的代理/处理代码是并行操作的。