Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
fsockopen, несколько запросов |

09.12.2008, 16:50
|
UID: 51133
USER: kik8888
Познающий
Регистрация: 29.02.2008
Сообщений: 45
Провел на форуме: 162965
Репутация:
6
|
|
fsockopen, несколько запросов
Можно ли открыть одно соединение через прокси с помощью fsockopen() и посылать несколько запросов друг за другом? Я щас открываю для каждого запроса новое соединение и соответственно трачу на это время, попробывал через одно - не получилось, отправился только один запрос.
|
|
|

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

09.12.2008, 17:10
|
UID: 42362
USER: 159932
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
есть ещё неблокирующие сокеты .. не разу не использовал, тк кк мульти курл всегда проще ..
|
|
|

09.12.2008, 17:13
|
UID: 51133
USER: 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, $errstr, 30);
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
|
|
|

09.12.2008, 17:18
|
UID: 31502
USER: inlanger
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме: 3326855
Репутация:
702
|
|
тебе надо каждый раз ПОЛНОСТЬЮ заново отправлять запрос. А ты в одном запросе хочешь передать сразу несколько. Все твои внутренние форы не катят. Нужно полностью переделать алгоритм.
|
|
|

09.12.2008, 17:23
|
UID: 24031
USER: DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме: 7364332
Репутация:
1276
|
|
Вот тут посмотри http://forum.antichat.ru/showpost.php?p=972325&postcount=18 приводил пример
|
|
|

09.12.2008, 17:32
|
UID: 68142
USER: GuD-ok
Новичок
Регистрация: 14.11.2008
Сообщений: 28
Провел на форуме: 158078
Репутация:
6
|
|
Юзай curl. Куда проще.
|
|
|

09.12.2008, 20:31
|
UID: 51133
USER: 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_INET, SOCK_STREAM, SOL_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 ( $socket, 512 ) ;
echo $tmp_soket;
socket_write ( $socket, $q1 ) ;
$tmp_soket = socket_read ( $socket, 512 ) ;
echo $tmp_soket;
};//end for
|
|
|

09.12.2008, 20:55
|
UID: 29666
USER: Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
php.net/multicurl
|
|
|

10.12.2008, 21:14
|
UID: 37114
USER: .:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Неплохой пример использования мультикурла:
http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|