Как отправить сразу несколько запросов серверу через сокеты?

Статус
В этой теме нельзя размещать новые ответы.

fatalfist

Постоялец
Регистрация
11 Мар 2007
Сообщения
40
Реакции
11
Ситуация следующая:

Инеткрэком отправляю запрос:

Код:
POST http://site.com/login HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://site.com
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
[B]Proxy-Connection: Keep-Alive[/B]
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: site.com
Content-Length: 47
Pragma: no-cache
Cookie: PHPSESSID=2f83a67a61ef83594528c117c25a7da3

username=usver&password=123456&processlogin=1

Приходит ответ:

Код:
HTTP/1.0 302 Found
Date: Tue, 17 Apr 2007 18:23:23 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Set-Cookie: [B]PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; path=/; domain=.site.com
Set-Cookie: loginname=usver; path=/; domain=.site.com
Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; [/B]domain=.site.com
[B]location: http://site.com/authloggedin[/B]
Content-Length: 0
nnCoection: close
Content-Type: text/html; charset=UTF-8
RemovedHdr: Keep-Alive


Как я понимаю из ответа сервак не разрывает со мной соединение и пытается перекинуть на Для просмотра ссылки Войди или Зарегистрируйся. Правильно?

Пытаюсь реализовать то же самое на пхп через сокеты. Цель получить кукисы:
Код:
Set-Cookie: PHPSESSID=dbad9cfe26fa3aa839312951e7053c4d; path=/; domain=.site.com
Set-Cookie: loginname=usver; path=/; domain=.site.com
Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com

Если в запросе указать Proxy-Connection: Keep-Alive - скрипт виснет намертво. Если поставить Connection: Close, то сервак присылает куки, но только:

Код:
Set-Cookie: loginname=usver; path=/; domain=.site.com
Set-Cookie: id_hash=bca49e192dce15ec725dce475e59d1a0; path=/; domain=.site.com
без ID сессии.

Насколько я понял, чтобы куки нормально установились надо как-то сделать GET запрос на Для просмотра ссылки Войди или Зарегистрируйся , не разрывая соединения..

Внимание, вопрос:
Как сделать этот GET запрос не разрывая соединения и не закрывая сокет? Или сокет можно все-таки закрыть?

Попытался погуглить на эту тему, нашел только какие-то туманные рассуждения по поводу неблокирующих сокетов, но ничего конкретного (не говоря уже про примеры) там не было написано...

Наставьте, плз, на путь истинный! :)
 
ЗачЭм сокеты, используй лучше курл, он удобнее, хотя есть мнение что медленнее, чем сокеты.

Для начала надо посмотреть что посылает браузер и ответ сервера на этот запрос. Лучше всего использовать Фаерфокс+плагин Live HTTP Headers. Далее сформировать и отправить запрос и получить и обработать ответ вместе с куками и/или редиректом. Примеры в официальной документации или в инете.

Курлом можно реализовать практически любой сетевой протокол. Есть и реализация мультипоточность (функции с префиксом curl_multi)
 
Насчет курла где то читал, что последовательный курл быстрей чем многопоточные сокеты! Я когда использовал курл был просто в шоке от скорости с которой он работает.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху