ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

fsockopen, несколько запросов
  #1  
Старый 09.12.2008, 16:50
UID: 51133
USER: kik8888
kik8888
Познающий
Регистрация: 29.02.2008
Сообщений: 45
Провел на форуме:
162965

Репутация: 6
По умолчанию fsockopen, несколько запросов

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

  #2  
Старый 09.12.2008, 17:00
UID: 31502
USER: inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

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

  #3  
Старый 09.12.2008, 17:10
UID: 42362
USER: 159932
159932
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме:
6722038

Репутация: 1385


По умолчанию

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

  #4  
Старый 09.12.2008, 17:13
UID: 51133
USER: kik8888
kik8888
Познающий
Регистрация: 29.02.2008
Сообщений: 45
Провел на форуме:
162965

Репутация: 6
По умолчанию

Вот отрывок кода. Отправляется только один запрос из цикла 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  
Старый 09.12.2008, 17:18
UID: 31502
USER: inlanger
inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме:
3326855

Репутация: 702


По умолчанию

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

  #6  
Старый 09.12.2008, 17:23
UID: 24031
USER: DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


По умолчанию

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

  #7  
Старый 09.12.2008, 17:32
UID: 68142
USER: GuD-ok
GuD-ok
Новичок
Регистрация: 14.11.2008
Сообщений: 28
Провел на форуме:
158078

Репутация: 6
По умолчанию

Юзай curl. Куда проще.
 
Ответить с цитированием

  #8  
Старый 09.12.2008, 20:31
UID: 51133
USER: kik8888
kik8888
Познающий
Регистрация: 29.02.2008
Сообщений: 45
Провел на форуме:
162965

Репутация: 6
По умолчанию

Переделал скрипт, но теперь получаю вот такую ошибку:
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  
Старый 09.12.2008, 20:55
UID: 29666
USER: Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

php.net/multicurl
 
Ответить с цитированием

  #10  
Старый 10.12.2008, 21:14
UID: 37114
USER: .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ