![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
kanaris |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 16.2.2008 Репутация: -1 Всего: -1 |
После отправки запроса и получения ответа соединение сервер закрывает. А вот дескриптор $sock все еще остается жив. Есть ли какие-нибудь способы проверить, закрылось ли соединение? Это сообщение отредактировал(а) kanaris - 1.7.2010, 23:28 |
|||
|
||||
Kano |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.2.2009 Репутация: 1 Всего: 0 |
Запрос неправильный.
|
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
может так?
Это сообщение отредактировал(а) ksnk - 1.7.2010, 23:14 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
kanaris |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 16.2.2008 Репутация: -1 Всего: -1 |
Ну это к примеру, написал от руки, пока постил вопрос. (ну да, не стоит \r\n\r\n в конце, забыл). В принципе, пока вы отвечали, проблему удалось решить "хирургическим" методом, посылая данные и запрашивание ответа. Если ошибка, значит не соединено и переподключается. Но хотелось бы это выявить какими-нибудь цивилизованными методами (если бы существовала какая-нить функция "is_socked_connected($sock)" к примеру) UPD:
Прошу простить мелкие опечатки, писал от руки для простого примера, может еще что-то забыл добавить, не важно (в оригинале все правильно и с этим проблем нет). Это сообщение отредактировал(а) kanaris - 1.7.2010, 23:24 |
||||||
|
|||||||
Kano |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.2.2009 Репутация: 1 Всего: 0 |
kanaris, такого в общем-то нет. Обычно это делается с помощью таймаута, т.е. создаётся неблокирующие сокеты и проверяются готов ли он к чтению/записи после определённого времени...
Зачем тебе это требуется в данном случае? P.S. HTTP/1.1 нежелательно использовать в таких запросах. |
|||
|
||||
kanaris |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 16.2.2008 Репутация: -1 Всего: -1 |
Делаю класс, при помощи которого можно получить несколько веб-страниц за одно соединение. Все в принципе работает, но хотел еще добавить 1 функцию, которая бы объединяла в себе 3 действия (соединить, отправить, получить). А раньше приходилось делать так:
Теперь достаточно так:
|
||||
|
|||||
Kano |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.2.2009 Репутация: 1 Всего: 0 |
kanaris, я вижу полноценное решение только через функции http://ru2.php.net/manual/en/ref.sockets.php Плюс, как ты понимаешь, придётся делать полноценный анализ ответа (включая поддержку chunked encoding).
|
|||
|
||||
kanaris |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 16.2.2008 Репутация: -1 Всего: -1 |
да понимаю, сделал и chukned и content-length, все работает (а остальное, если что-то там будет, тоже доделаю). пока что проблему решил, как описал во 2 своем посте. |
|||
|
||||
NewDima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
Аргументируйте |
|||
|
||||
Kano |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 23.2.2009 Репутация: 1 Всего: 0 |
NewDima, с тем же chunked encoding разбираться (в любом случае), разбираться со сжатым контентом (не все сервера смотрят за Accept-Encoding) и т.п. По-моему, очевидно. Далеко не все понимают различий HTTP/1.0 и HTTP/1.1, когда пишут подобные "сырые" запросы.
Имеется ввиду не сам HTTP-запрос, а код запроса на PHP. Это сообщение отредактировал(а) Kano - 5.7.2010, 09:12 |
|||
|
||||
kanaris |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 16.2.2008 Репутация: -1 Всего: -1 |
Вся соль в том, что нужно делать несколько запросов за одно соединение. А http 1/0 не поддерживает такое, на сколько я знаю
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |