#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 — это не ваша библиотека.