powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нестабильная работа CURL через сокс5
2 сообщений из 2, страница 1 из 1
Нестабильная работа CURL через сокс5
    #38982997
trom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал функцию для работы с CURL используя несколько потоков.

Проблема в том что когда использую сокс и передаю в массиве $urls несколько линков, то CURL иногда не пишет ничего в в массив результатов $res.

Когда убираю сокс, то все ок.
Если гружу только один линк в массиве $urls, то curl отрабатывает без ошибок.

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

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
function _request_multi($urls, $proxy_enable, &$end_link_mass, $timeout = 20) {

  $mh = curl_multi_init();
    foreach ($urls as $i => $url) {
    

        $conn[$i] = curl_init($url);
    
        $ch = $conn[$i];
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);        
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);   
        curl_setopt($ch, CURLOPT_HEADER, 1);
   
     
        if($proxy_enable==1){
        curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);        
        curl_setopt($ch, CURLOPT_PROXY, '1.1.1.1:80');
        curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'log:pass');     
     
        }
   
        curl_multi_add_handle($mh, $conn[$i]);
    }
$active = null;
 do {
      curl_multi_exec($mh, $active);
    } while ($active); //Пока все соединения не отработают

    
    for ($i = 0; $i < count($urls); $i++) {                  //разбор полетов
        $res[$i] = curl_multi_getcontent($conn[$i]);        //ответ сервера в переменную
        $end_link_mass[$i]=curl_getinfo($conn[$i],CURLINFO_EFFECTIVE_URL);        
        curl_multi_remove_handle($mh, $conn[$i]);
        curl_close($conn[$i]);
    }
    curl_multi_close($mh);

    return $res;
}
...
Рейтинг: 0 / 0
Нестабильная работа CURL через сокс5
    #38988770
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну начать стоит с неверного кода.

curl_multi_info_read - вот этой функцией надо считывать результаты, когда они готовы.

ну просто чтоб код держался не на чесном слове, исходя из того, что пока что не замеченно факта, чтобы твой дал ошибку.

второе, ты выставляешь таймаут.

ну и главное. виндоус тоже у меня иногда выдаёт ошибку - но врядли есть смысл в вопросе, виндоус иногда не работает, что посоветуете.

по курлу одиночному можно получить информацию детальную, и посмотреть что и как было. как он завершился. ошибки всего пула тоже можно остлеживать, также у курла есть дебаг режим. есчё можно поиграться с колбеками на запись результата - заголовки + контент... чтобы увидеть - хоть частично ответ начинал курл получать или нет.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Нестабильная работа CURL через сокс5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]