какая библиотека лучше между libcurl и chilkat?

#cocoa-touch #ios #ftp-client

#cocoa-touch #iOS #ftp-клиент

Вопрос:

я новичок в программировании FTP-соединений в Cocoa. Я нашел 2 библиотеки, которые я могу выбрать для создания своего приложения, но я не знаю, какая из этих библиотек лучшая. Библиотеками являются libcurl и chilkat . Проблема в том, какая польза от каждой библиотеки? Кто-нибудь сравнивал это? или, может быть, кто-нибудь может рассказать мне о вашем опыте? Спасибо

Ответ №1:

У меня нет никакого опыта работы с chilkat, но я могу сказать вам, что libcurl используется во многих языках программирования и доступен во многих системах. Например, в PHP или на Mac curl — отличный инструмент для использования.

Итак, я бы посоветовал libcurl, если он доступен на вашей платформе. Вероятно, вы найдете больше информации о curl, и она зарекомендовала себя на многих других платформах.

Также интересным, если вы хотите использовать curl, является curlhandle. Это оболочка cocoa вокруг библиотеки curl. Возможно, в вашем случае это очень удобно, но у меня нет опыта работы с этим.

Комментарии:

1. Спасибо за ваш ответ, не могли бы вы рассказать мне, как ее использовать? или, может быть, дайте мне какую-нибудь ссылку на это руководство, мне трудно найти несколько руководств о том, как использовать libcurl

2. Если вы хотите использовать curlhandle, просто скачайте его и ознакомьтесь с демонстрационным проектом. Если вы хотите использовать libcurl на iOS, просто загуглите «libcurl iOS» или посмотрите одну из этих: blog.ideas-world.com/2011/03/14/building-libcurl-for-ios-4-2 или intelliproject.net/articles/showArticle/index /…

3. спасибо за вашу ссылку, но я пробовал это раньше (извините, что не рассказал об этом в своем вопросе), но я не могу установить libcurl, оба они выдают мне много ошибок, когда я пытаюсь собрать код

4. Что ж, это звучит как новая проблема. Итак, откройте новый вопрос и подробно расскажите нам об ошибках сборки и о том, что вы пытались сделать с is. Таким образом, люди с опытом создания libcurl могут вам помочь! Ps. Если вы считаете, что мой ответ был приятным, вы можете принять его. 🙂

Ответ №2:

Я могу сказать вам, что разница между libcurl и chilkat заключается в следующем: (хотя вы, вероятно, уже знаете)

Chilkat похож на шахматную партию, которую вы покупаете в магазине, а libcurl — на пластик в жидкой форме, который вы покупаете, из которого вы можете сделать любую шахматную фигуру.

Libcurl — это слегка абстрагированный соединитель сокетов, и Chilkat обрабатывает все, что вы могли бы сделать, до определенного уровня, с этим подключением. Вы либо смотрите на биты, либо что-то «превратило эти биты в электронное письмо». Я собираюсь купить Chilkat для некоторых библиотек, мне нравятся функции, но в то же время я хотел бы, чтобы у меня было время прочитать RFC и поиграть с другими материалами, используя libcurl. В любом случае, надеюсь, что этот ответ чего-то стоит для кого-то.

Ответ №3:

Поскольку этот вопрос по-прежнему занимает высокое место в Google, я делюсь с вами своим опытом. Я купил chilkat в 2015 году и позже перешел на libcurl, а моя собственная реализация — намного позже. Обе далеки от совершенства. libcurl просто показывает свой возраст и некоторые слабые конструкции.

libCurl — это библиотека, которая пытается реализовать все протоколы, поддерживающие URL, даже если они разработаны как потоковый протокол, такой как FTP. Сделайте себе одолжение и используйте ее только с HTTP / HTTPS. Она просто выполняет часть передачи. Чего недостаточно для обработки. Вы бы хотели увидеть хотя бы процедуры mime и кодировки для использования загруженных файлов.

Chilkat — это библиотека верхнего уровня, которая пытается предоставить вам как можно больше высокоуровневого доступа. Она использует фоновые потоки на языках сценариев, где ее нелегко использовать. Проблема в том, что API ужасен, очень мало документирован и дает полный сбой, когда вы хотите написать качественную программу. Например, она возвращает запросы в виде строки. Нет способа для потоковой обработки. Теперь представьте, что вы загружаете iso-файл размером в гигабайт, вы не будете довольны. Она может возвращаться в виде файла, но тогда вам придется указать это в начале запроса, если вы не знаете размер загрузки.

Также качество кода, пока не доказано обратное, плохое. В свободном доступе есть несколько фрагментов исходного кода chilkat, которые вы можете найти через Google, и они — чистое безумие. Хорошо, мы не знаем, как этот старый код был переработан сейчас. Но это оставляет неприятный осадок, помните, что это закрытый исходный код, и в нем нет ни единого упоминания о угловых случаях, о том, какой протокол реализован, какие функции протоколов реализованы и так далее. Вы используете абсолютно черный ящик.

Также она не обеспечивает высокую производительность и высокую ценность кода. Я использовал ее для написания веб-сканера, и она была намного медленнее, чем libcurl.

Позже я использовал компоненты HTTP и SSH для автоматизации некоторых сценариев управления сервером / клиентом, и там это блестит. Вы знаете обе стороны и можете просто проверить, работают ли они вместе, и не получить никаких сюрпризов. Тогда это действительно просто и лучше, чем использовать сломанный python или ruby SSH.

Но если вы когда-нибудь свяжетесь с другим неизвестным сервером, Chilkat — это не ваша библиотека.