Curl vs Socket (сокеты)

Тема в разделе "PHP", создана пользователем Acden, 3 апр 2011.

Модераторы: latteo
  1. Acden

    Acden

    Регистр.:
    12 янв 2008
    Сообщения:
    200
    Симпатии:
    12
    Прошу сравнить возможности Curl и Сокетов.
    Насколько знаю обе технологии позволяют получать данные с других сайтов.

    Что лучше начать изучать для взаимодействия с сайтами?

    Насколько знаю, сокеты имеют гораздо больший потенциал.
     
  2. Murdok

    Murdok

    Регистр.:
    1 окт 2006
    Сообщения:
    236
    Симпатии:
    84
    Вот тут обсуждение на эту тему
    http://forum.woweb.ru/topic26008s0.html
    Курл справляется со всеми задачами которые я перед ним ставлю и я посоветовал бы начать именно с него, а потом уже перейти к сокетам, так по моему будет для вас проще.

    Мне с курлом проще работать чем с сокетами, а лучше или хуже это решайте вы.
     
  3. Acden

    Acden

    Регистр.:
    12 янв 2008
    Сообщения:
    200
    Симпатии:
    12
    Что-то из того разговора мало что понятно. Лишний раз убедился что с сокетами работать профессиональней и перспективней.

    Хотя мои задачи выполнит и cURL, но мне не лень разобраться в заголовках HTTP – все равно разбираться по готовым примерам. Дак зато сразу начать изучать более профессиональный инструмент.
     
  4. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    118
    Curl - это уже готовый дом, а сокеты его кирпичи для постройки, смотря какие задачи преследуете.
     
  5. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Для сайтов курл подойдёт с лихвой. С ним гораздо меньше возни- надо заботится о куче вещей и знать хорошо спецификацию запросов, чтобы нормально формировать их. А то придётся каждый раз танцевать с бубном из-за очередного настроенного сервера. При этом нет ни особенного выигрыша в стабильности (хотя курл часто странно ведёт себя, в сокетах можно легко ошибиться и долго разбираться, почему вдруг перестало всё работать) ни в быстроте (хотя курл довольно тяжёлый, жрёт много памяти, но в пределах нормы) ни, относительно, в широте использовании- да, можно сделать очень много, но вы точно собираетесь часто общаться с сервером на низком уровне по какому-нить нестандартному протоколу?
    вывод:
    сокеты- да, профессиональный инструмент, но который требует профессионального подхода
    курл- написан для удобства и включает множество функций сокетов, но не все.
     
  6. Acden

    Acden

    Регистр.:
    12 янв 2008
    Сообщения:
    200
    Симпатии:
    12
    Интересно, какие например функции он не включает?


    Я вот о том и говорю –*что это кирпичики. Что сокеты перспективней начать учить и можно без curl'а обойтись.


    Вот замеры скорости разных технологий:
    • Curl: 5.39667105675
    • file_get_contents: 7.99799394608
    • Sockets: 2.99629592896
    • MultiCurl: 0.736907958984

    Встречал еще один такой тест, а также пробовал на хостинге: сURL всегда получается в 2 раза медленнее сокетов.

    http://wolf-et.ru/php/curl-vs-sockets-vs-file_get_contents-vs-multicurl/
     
  7. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    а в чем проблема изучить курл и соксы?
    это не физика ... здесь нет талмутов правил и пересекающихся законов... денек-другой с одним посидеть ... денек другой с другим ..

    более того, если вопрос ставится " с чем профессиональней работать" так если уж на то пошло, то профессионал должен знать и 1 и 2 и десятое. А уж что использовать в той конкретной ситуации решит сам.

    одно работает на какие-то доли секунд быстее другого ... - ну и что? а сколько нужно времени потратить чтоб написать 1 способом и 2?

    ИМХО начни с курла, - сделай какой-то скрипт взаимодействующий с чужим сайтом а потом перепиши его на соксы ... - и сам прочувствуешь всю разницу
     
  8. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    199
    Симпатии:
    55
    Когда я изучал PHP, меня особо заинтересовали некоторые вещи. Одна из них была Sockets. Работа с ними переросла в отдельный класс, этот класс наследовался другими классами, расширяющими его функционал...... В результате получился такой же curl написанный на PHP.

    PS. Не изобретай велосипед, начни с CURL. Окончательно разобравшись со своими потребностями сам решишь, стоит ли углубляться.
     
  9. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Попробуй оба, для начала сильно в глубь не лезь чисто посмотри как они работают на практике, сколько времени требуется на составление логике в 1 и 2 случае. Попробуй написать регер допустим к ЖЖ ч начало на CURL, а потом тот же регер но на сокетах. В процессе увидиш отличия в полной мере, Я писал под этот сервис регер как на курлах так и на сокетак это в полне осуществимо.

    Мое же имхо по поводу что лучше:
    Знать надо оба варианта, CURL очень упрощает жизнь прогеру так как там много чего автоматизированно. Так что мое личное мнение Начни с курла, что касаемо сокетов я считаю увеличение скорости на 2 секунды в ущерб простоты это не аргумент что бы начать изучать углублено сокеты.
     
  10. t3s

    t3s

    Регистр.:
    16 фев 2008
    Сообщения:
    719
    Симпатии:
    290
    ТС, а мне что-то подсказывает что вы решили создать "хитрую" тему для набивания постов - из разряда "виндовс или линукс", "таблицы или блоки", "вордпресс или дле", "опера или файрфокс" и т.д.

    я сильно ошибаюсь? - если да, то проаргументируйте, иначе топик будет перенесен во флудильню