fsockopen, несколько запросов

Discussion in 'PHP' started by kik8888, 9 Dec 2008.

  1. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Можно ли открыть одно соединение через прокси с помощью fsockopen() и посылать несколько запросов друг за другом? Я щас открываю для каждого запроса новое соединение и соответственно трачу на это время, попробывал через одно - не получилось, отправился только один запрос.
     
  2. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    Нужно только каждый раз новый запрос формировать
     
  3. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    есть ещё неблокирующие сокеты .. не разу не использовал, тк кк мульти курл всегда проще ..
     
  4. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Вот отрывок кода. Отправляется только один запрос из цикла fоr.
    Что я делаю не так? Или киньте отрывок кода, как это проще сделать, может при помощи курла
    PHP:
    while(!$fp){
    $pr=$proxy[rand(0,count($proxy))];
    list(
    $ip$port) = explode(":",trim($pr));
    $fp fsockopen ($ip$port$errno$errstr30);
    if(!
    $fp) echo "$errstr ($errno)<br>\n";
    };

    for(
    условие){
    //устанавливаются значения переменных переменные
       
    $otv="";
       
    $q1 "GET ".$ss." HTTP/1.0\r\nHost: ".$host."\r\nUser-Agent: ".$br."\r\n\r\n";   
        
        if (!
    $fp) {    
            echo 
    "$errstr ($errno)<br>\n";  
        } else {   
            
    fputs ($fp$q1);  
          while (!
    feof($fp)) {     
                
    $otv=$otv.fgets ($fp,1280000);    
            };  
       };
       echo 
    $otv;
    };
    //end for
     
  5. inlanger

    inlanger Elder - Старейшина

    Joined:
    7 Jan 2007
    Messages:
    985
    Likes Received:
    283
    Reputations:
    27
    тебе надо каждый раз ПОЛНОСТЬЮ заново отправлять запрос. А ты в одном запросе хочешь передать сразу несколько. Все твои внутренние форы не катят. Нужно полностью переделать алгоритм.
     
  6. DIAgen

    DIAgen Banned Life!

    Joined:
    2 May 2006
    Messages:
    1,055
    Likes Received:
    374
    Reputations:
    460
    Вот тут посмотри http://forum.antichat.ru/showpost.php?p=972325&postcount=18 приводил пример
     
  7. GuD-ok

    GuD-ok New Member

    Joined:
    14 Nov 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    Юзай curl. Куда проще.
     
  8. kik8888

    kik8888 Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    Переделал скрипт, но теперь получаю вот такую ошибку:
    Warning: socket_write(): unable to write to socket [32]: Broken pipe in skript.php on line 293
    Почему выдается эта ошибка, как исправить?
    PHP:
    while(!$fp){
    $pr=$proxy[rand(0,count($proxy))];
    list(
    $ip$port) = explode(":",trim($pr));
    $socket socket_create AF_INETSOCK_STREAMSOL_TCP ) ;
    $fp=socket_connect $socket$ip$port ) ;
    };

    for(
    условие){
    //здесь устанавливаются переменные
       
    $q1 "GET ".$ss." HTTP/1.0\r\nHost: ".$host."\r\nUser-Agent: ".$br."\r\n\r\n";   
       
    $tmp_soket socket_read $socket512 ) ;
    echo 
    $tmp_soket;
    socket_write $socket$q1 ) ;
    $tmp_soket socket_read $socket512 ) ;
    echo 
    $tmp_soket;
        
    };
    //end for
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,325
    Likes Received:
    1,194
    Reputations:
    252
    php.net/multicurl
     
  10. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Неплохой пример использования мультикурла:
    http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/
     
Loading...