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

Ваш аккаунт

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

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

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

Недополучаю ответ через сокеты

9.9K
25 июня 2008 года
Данила
38 / / 25.10.2006
Привет всем.

Написал несложный скрипт для получения контента через сокеты, но возникла проблема - я не дополучаю до конца ответ. То есть где-то первые 3-4 кб загружаются и все - дальше работа прекращается. Почему - непонятно. Ошибок никаких не выводит. Причем самое интересное то, что иногда успевает получить 3 кб, а иногда 4. И такое не со всеми сайтами. Например страницу yandex.ru (я щас только проверил) он получает полностью, а страницу ya.ru например нет.


<?
$result = '';
$server_ip = 'yandex.ru';
$server_port = '80';
$host = 'yandex.ru';

$s = fsockopen($server_ip, $server_port);
$d = fputs ($s, "GET http://yandex.ru \n");
fputs ($s, "Connection: Keep-Alive \n");
fputs ($s, "User-Agent: Opera/9.50 (Windows NT 5.1; U; ru) \n");
fputs ($s, "Host: http://$host\n");
fputs ($s, "Accept: */*\n");
fputs ($s, "Accept-Language: ru \n");
fputs ($s, "Referer: http://yandex.ru \n");
fputs ($s, "Content-type: * \n");
fputs ($s, "Pragma: no-cache\n");
fputs ($s, "Cache-Control: no-cache\n");
fputs ($s, "Connection: close\n\n");


while (!feof($s)) $result .= fgets($s, 1000000);
//if(strpos("TTP/1.1 404 Not FoundDate:",$result)) $result=false;
echo $result;
fclose($s);
?>
24K
25 июня 2008 года
ostgals
53 / / 27.08.2007
По идее должно работать...
Только я чегойто всегда думал, что заголовки нужно завершать комбинацией \r\n, а не просто \n.

P.S. Вот сейчас освежил свою память. Действительно стандарт HTTP требует \r\n.
9.9K
26 июня 2008 года
Данила
38 / / 25.10.2006
Да, вы совершенно правы. Но внесенная правка на ход событий не повлияла. Вопрос остается открыт - контент почему-то не докачивается
256
26 июня 2008 года
foxweb
1.0K / / 27.07.2005
Цитата: Данила
Да, вы совершенно правы. Но внесенная правка на ход событий не повлияла. Вопрос остается открыт - контент почему-то не докачивается



Было такое. Посмотреть версию протокола и способ сжатия/кодирования ответа. Используйте curl и будет вам щастье.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог