Считывание заголовков mp3-потока сокетами

Тема в разделе "PHP", создана пользователем Albert22, 15 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Привет
    Есть необходимость определить статус потока с Icecast (online/offline). Если поток онлайн, то get_headers(); вполне хватает, однако если с ним вдруг что, то get_headers(); начинает жутко тормозить пока не наступит неведомый таймаут. Решил использовать сокеты:
    PHP:
    function getHeaders($addr) {
        
    $addr=str_replace('http://'''$addr);
        
    $url['path']=explode('/'$addr);
        
    $url['host']=explode(':'$url['path'][0]);
        
    $fp = @fsockopen($url['host'][0], $url['host'][1], $errno$errstr3);
        if (!
    $fp) {
            echo 
    "Unable to open\n";
        } else {

            
    fwrite($fp"GET /".$url['path'][1]." HTTP/1.0\r\n\r\n");
            
    stream_set_timeout($fp2);
            
    $res fread($fp20);
            
    fclose($fp);
             return 
    $res;
            }

        }     
    }
    В функцию передаётся нечто вроде http://domain.tld:8000/radio_mountpoint. Скажите, когда в ответе функции содержится 200 ОК (а значит всё работает и получено), я не рискую оставить считывание «включенным»? Запрос ведь используется GET, HEAD не работает (400 Bad Request сокетами и curl'ом). То есть, по завершении скрипт не продолжит загрузку данных? Или fclose(); всё решает?
     
  2. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    эфклоз закроет соединение
     
    irk нравится это.
  3. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    То есть будут считаны только первые 20 символов ответа и соединение закроется?
     
  4. betatest

    betatest

    Регистр.:
    3 дек 2007
    Сообщения:
    517
    Симпатии:
    127
    ессно - для того, что бы продолжить - нужно продолжать чтение, а ты рвешь соединение
     
    Albert22 нравится это.
  5. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Благодарю, всё ясно
     
Статус темы:
Закрыта.