CocoaAsyncSocket README

The project's README from github.com/robbiehanson/CocoaAsyncSocket. As one markdown file: README.md.

CocoaAsyncSocket

Build Status Version Status Carthage compatible Platform license Public Domain

CocoaAsyncSocket provides easy-to-use and powerful asynchronous socket libraries for macOS, iOS, and tvOS. The classes are described below.

Installation

CocoaPods

Install using CocoaPods by adding this line to your Podfile:

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

Carthage

CocoaAsyncSocket is Carthage compatible. To include it add the following line to your Cartfile

github "robbiehanson/CocoaAsyncSocket" "master"

The project is currently configured to build for iOS, tvOS and Mac. After building with carthage the resultant frameworks will be stored in:

Select the correct framework(s) and drag it into your project.

Swift Package Manager

Simply add the package dependency to your Package.swift and depend on "CocoaAsyncSocket" in the necessary targets:

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

Manual

You can also include it into your project by adding the source files directly, but you should probably be using a dependency manager to keep up to date.

Importing

Using Objective-C:

// When using Clang Modules:
@import CocoaAsyncSocket; 

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

Using Swift:

import CocoaAsyncSocket

TCP

GCDAsyncSocket is a TCP/IP socket networking library built atop Grand Central Dispatch. Here are the key features available:

UDP

GCDAsyncUdpSocket is a UDP/IP socket networking library built atop Grand Central Dispatch. Here are the key features available:


For those new(ish) to networking, it's recommended you read the wiki.
Sockets might not work exactly like you think they do...

Still got questions? Try the CocoaAsyncSocket Mailing List.


Love the project? Wanna buy me a ☕️  ? (or a 🍺  😀 ):

donation-bitcoin donation-paypal

CocoaAsyncSocket (robbiehanson/CocoaAsyncSocket)

Searching Database…

Что это такое?CocoaAsyncSocket — это библиотека для асинхронной работы с сокетами в сети для macOS, iOS и tvOS, которая предоставляет классы TCP и UDP на основе Grand Central Dispatch.
Это фреймворк или просто пара классов, которые я могу добавить в проект?Это легковесная библиотека с двумя основными самодостаточными классами на Objective-C: GCDAsyncSocket для TCP и GCDAsyncUdpSocket для UDP, а не полноценный фреймворк.
Как добавить её в мой проект?Установите через CocoaPods, Carthage или Swift Package Manager, добавив зависимость, или просто перетащите исходные файлы в проект вручную.
Нужно ли что-то кроме Xcode, чтобы её использовать?Внешние зависимости для работы не требуются: библиотека работает напрямую с импортом на Objective-C или Swift и использует GCD, который встроен в SDK от Apple.
Есть ли что-то сложное в том, как здесь ведут себя сокеты?В README прямо предупреждается, что сокеты не обязательно работают так, как ожидают новички, и рекомендуется перед началом работы прочитать вики проекта.
Поддерживаются ли и IPv4, и IPv6?Да, и классы TCP, и классы UDP автоматически поддерживают подключения по IPv4 и IPv6 без необходимости создавать отдельные сокеты.
На каких платформах Apple она работает?Библиотека собирается для macOS, iOS и tvOS.
Поддерживает ли GCDAsyncSocket зашифрованные соединения?Да, поддерживает TLS/SSL одним вызовом метода; это доступно как для клиентских, так и для серверных сокетов.
Как она работает с потоками и обратными вызовами?Она полностью работает внутри собственной очереди диспетчеризации GCD и полностью потокобезопасна; методы делегата вызываются асинхронно в выбранной вами очереди диспетчеризации, что позволяет работать параллельно.
Что происходит, когда я запускаю серверный сокет?GCDAsyncSocket поддерживает автоматическое принятие сокетов: вы указываете ему принимать подключения, и для каждого входящего подключения он вызывает ваш делегат, передавая новый экземпляр самого себя.
Size
2.2 MB
Stars
12.4K
Age
14y
Commits · 90 Days