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

Discussion in 'PHP' started by beerbear, 20 Apr 2007.

  1. beerbear

    beerbear New Member

    Joined:
    15 Apr 2007
    Messages:
    24
    Likes Received:
    2
    Reputations:
    2
    Ситуация следующая:

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

    Code:
    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
    
    Приходит ответ:

    Code:
    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
    

    Как я понимаю из ответа сервак не разрывает со мной соединение и пытается перекинуть на http://site.com/authloggedin. Правильно?

    Пытаюсь реализовать то же самое на пхп через сокеты. Цель получить кукисы:
    Code:
    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, то сервак присылает куки, но только:

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

    Насколько я понял, чтобы куки нормально установились надо как-то сделать GET запрос на http://site.com/authloggedin , не разрывая соединения..

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

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

    Наставьте, плз, на путь истинный! :)
     
  2. Helios

    Helios Elder - Старейшина

    Joined:
    14 Jan 2007
    Messages:
    414
    Likes Received:
    180
    Reputations:
    103
    А
    не пробовал?
     
  3. beerbear

    beerbear New Member

    Joined:
    15 Apr 2007
    Messages:
    24
    Likes Received:
    2
    Reputations:
    2
    да уже по-всякому пробовал.. ноль эмоций
     
  4. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    Когда найдёшь, откуда взял это печенье, получишь ответ на свой вопрос.
     
  5. beerbear

    beerbear New Member

    Joined:
    15 Apr 2007
    Messages:
    24
    Likes Received:
    2
    Reputations:
    2
    Все. Спасибо. Разобрался.
    Просто спать надо больше! =)