Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проксичекер на многопоточном CURL

26K
18 декабря 2010 года
ladzio
19 / / 19.12.2007
Вообщем сделал чекер прокси на курле с использованием многопоточности и без нее. В итоге при однопоточной проверке получается намного больше удачных коннектов чем при многопоточной. Что я сделал не так?

код скрипта
Код:
<?

function ch($pr)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.cmyip.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_PROXY, $pr);
curl_setopt($ch, CURLOPT_PROXYTYPE , CURLPROXY_SOCKS5);
return $ch;
}
$proxies = array();
$proxies = array_unique(file('proxies.txt'));

$cmh = curl_multi_init();
for($i=0;$i<count($proxies);++$i)
{
$ch=ch($proxies[$i]);
curl_multi_add_handle($cmh, $ch);
}


 
$active = null;
do {
   echo $mrc = curl_multi_exec($cmh, $active);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);

 
while ($active) {  
    if (curl_multi_select($cmh) != -1) {  
        do {  
            $mrc = curl_multi_exec($cmh, $active);  
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);  
    }  
}  
 
curl_multi_close($cmh);


?>
12
20 декабря 2010 года
alekciy
3.0K / / 13.12.2005
Назвать многопоточным данный код можно только условно. Скорее уж асинхронным (или мультизапросный). Потому что этот скрипт выполняется в одном потоке, просто код не блокируется в ожидании ответа с дескриптора. Обработка ответов происходит все равно в однопоточном режиме. Если результат выводится куда либо в конце работы скрипта, то время получения результата будет равно самому тормозному запросу (либо величине таймаута соединения).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог