чем отличаются GCDAsyncSocket и AsyncSocket?

Один из них - GCD, а другой - Runloop? Это абстрактно, как выбрать один для моего TCP-соединения? Очень благодарен, я только нашел, как использовать GCDAsyncSocket на github, но не знаю, как его выбрать.


person Kira    schedule 07.07.2016    source источник


Ответы (1)


Надеюсь, это может помочь вам:

Даже если вы используете только iOS, в ближайшем будущем, вероятно, появятся многоядерные устройства iOS. А GCD станет отличным способом воспользоваться дополнительными ресурсами с помощью GCDAsyncSocket.

GCDAsyncSocket

  • Минимальные требования для GCDAsyncSocket: Mac OS X 10.6+ или iOS 4.0+

  • GCDAsyncSocket работает намного лучше, чем AsyncSocket.

  • Учитывая разгрузку шифрования/дешифрования (не SSL/TLS) в другой поток, мне кажется, что лучшей альтернативой будет путь GCD.

Конкретные функции GCDAsyncSocket включают:

    1. Classic delegate-style support.
    2. It allows allows for parallel socket IO and data processing, as well as easy thread-safety.
    3. Queued non-blocking reads and writes, with optional timeouts.
    4. Automatic support for IPv4 and IPv6.
    5. SSL/TLS support.
    6. Built upon the latest technologies such as queues and GCD.
    7. Self-contained in one class.
    You don't need to muck around with streams or sockets. The class handles all of that.

Асинксокет

Библиотека AsyncSocket состоит из одного класса, также называемого AsyncSocket. Экземпляр AsyncSocket представляет один сокет, который может быть сокетом прослушивания или сокетом подключения.

  • Если вам нужна поддержка версий ОС, предшествующих Mac OS X 10.6+ или iOS 4.0+, вам пока придется придерживаться AsyncSocket.

  • AsyncSocket обеспечивает легко интегрируемую сеть по принципу «запусти и забудь», которая позволяет вашему приложению легко поддерживать работу в сети.

Функции включают:

•   Queued non-blocking reads and writes, with timeouts.
•   Automatic socket acceptance.
•   Delegate support.
•   Run-loop based, not thread based.
•   Self-contained in one class. You do not need to muck around with a collection of stream or socket instances. The class handles all of that.
•   Support for TCP streams. AsyncSocket does not support UDP or multicast sockets.
•   Based on Apple’s own CFSocket and CFStream Carbon APIs.

Ссылка Reference_GCDAsyncSocket

Ссылка Об AsyncSocket

person soumya    schedule 07.07.2016