SwiftNDN 0.0.2.2

SwiftNDN 0.0.2.2

测试已测试
语言语言 SwiftSwift
许可证 自定义
发布最后发布2016年11月
SwiftSwift版本3.0
SPM支持SPM

Jongdeog Lee维护。



SwiftNDN 0.0.2.2

  • 作者:
  • Shang Wentao 和 Jongdeog Lee

CocoaAsyncSocket

Build Status Version Status Carthage compatible Platform license Public Domain

CocoaAsyncSocket为Mac和iOS提供易于使用且功能强大的异步套接字库。以下是对类进行描述。

安装

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"

项目当前配置为构建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构建的TCP/IP套接字网络库。以下是可用的关键功能:

  • 原生Objective-C,完整包含在一个类中。
    无需与套接字或流纠缠。此类为您处理一切。

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

  • 带有时限的队列非阻塞读取和写入
    您告诉它要读取或写入的内容,它将为您处理所有内容。排队、缓冲和自动流中终止序列的搜索 - 所有这些都将自动为您处理。

  • 自动套接字接受
    启动服务器套接字,让它接受连接,它将为每次连接调用您的新实例。

  • 支持IPv4和IPv6上的TCP流
    自动连接IPv4或IPv6主机。使用此类单例自动接受IPv4和IPv6上的传入连接。不再需要担心多个套接字。

  • 支持TLS / SSL
    轻松使用单一方法调用来保护你的套接字。适用于客户端和服务器套接字。

  • 完全基于GCD且线程安全
    完全在使用自己的GCD dispatch_queue内运行,并且完全线程安全。此外,所有委托方法都会异步地在您选择的dispatch_queue上调用。这意味着套接字代码和您的委托/处理代码的并行运行。

  • 最新技术和性能优化
    内部库利用了诸如kqueue等技术来限制系统调用并优化缓冲区分配。换句话说,峰值性能。

UDP

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

  • 原生Objective-C,完整包含在一个类中。
    无需手动处理低级套接字。此类为您处理一切。

  • 完整的委托支持。
    错误、发送完成、接收完成和断开连接都会导致调用您的委托方法。

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

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

  • 完全基于GCD且线程安全
    完全在使用自己的GCD dispatch_queue内运行,并且完全线程安全。此外,所有委托方法都会异步地在您选择的dispatch_queue上调用。这意味着套接字代码和您的委托/处理代码的并行运行。


对于网络新手,建议您阅读Wiki
套接字可能不会完全如您想象的那样工作……

还有问题吗?试试CocoaAsyncSocket邮件列表


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

donation-bitcoin donation-paypal