Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   fsockopen, несколько запросов (https://forum.antichat.xyz/showthread.php?t=95573)

kik8888 09.12.2008 16:50

fsockopen, несколько запросов
 
Можно ли открыть одно соединение через прокси с помощью fsockopen() и посылать несколько запросов друг за другом? Я щас открываю для каждого запроса новое соединение и соответственно трачу на это время, попробывал через одно - не получилось, отправился только один запрос.

inlanger 09.12.2008 17:00

Нужно только каждый раз новый запрос формировать

159932 09.12.2008 17:10

есть ещё неблокирующие сокеты .. не разу не использовал, тк кк мульти курл всегда проще ..

kik8888 09.12.2008 17:13

Вот отрывок кода. Отправляется только один запрос из цикла 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 


inlanger 09.12.2008 17:18

тебе надо каждый раз ПОЛНОСТЬЮ заново отправлять запрос. А ты в одном запросе хочешь передать сразу несколько. Все твои внутренние форы не катят. Нужно полностью переделать алгоритм.

DIAgen 09.12.2008 17:23

Вот тут посмотри http://forum.antichat.ru/showpost.php?p=972325&postcount=18 приводил пример

GuD-ok 09.12.2008 17:32

Юзай curl. Куда проще.

kik8888 09.12.2008 20:31

Переделал скрипт, но теперь получаю вот такую ошибку:
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 


Isis 09.12.2008 20:55

php.net/multicurl

.:EnoT:. 10.12.2008 21:14

Неплохой пример использования мультикурла:
http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/


Время: 03:53