Servidor SHOUTcast no responde a fsockopen
Utilizo un servidor remoto de SHOUTcast como base para una emisora de radio. Como alguno conocer谩, para conectarse a un servidor SHOUTcast y escuchar su emisi贸n hay que conectarse a un puerto concreto (normalmente el puerto 8000) de dicho servidor.
Se me ocurri贸, para chequear el estado de la emisora y mostrarlo en mi web, utilizar la funci贸n fsockopen de la siguiente manera:
$estado=@fsockopen("host","puerto",&$errno,&$errstr,30);
if (!$estado) echo "Offline";
else echo "Online";
Por alg煤n motivo que desconozco, aunque la emisora est茅 activa, el c贸digo me devuelve el siguiente error:
10060 -- A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Si algui茅n sabe donde puede estar el error o es capaz de orientarme, le agradeceria enormemente que lo posteara aqu铆.
Un saludo.
Se me ocurri贸, para chequear el estado de la emisora y mostrarlo en mi web, utilizar la funci贸n fsockopen de la siguiente manera:
$estado=@fsockopen("host","puerto",&$errno,&$errstr,30);
if (!$estado) echo "Offline";
else echo "Online";
Por alg煤n motivo que desconozco, aunque la emisora est茅 activa, el c贸digo me devuelve el siguiente error:
10060 -- A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Si algui茅n sabe donde puede estar el error o es capaz de orientarme, le agradeceria enormemente que lo posteara aqu铆.
Un saludo.
<?php
$host = $row[\\\\'http://tusitio.com\\\\'];
$port = $row[\\\\'8000\\\\'];
//$stream = \\\\'/stream/1025\\\\';
// Se conecta al servidor
$fp = fsockopen($host,$port,$errno,$errstr,5);
if ($fp)
{
fputs($fp, \\\"GET /7 HTTP/1.1\\\\nUser-Agent:Mozilla\\\\n\\\\n\\\");
for($i=0; $i<1; $i++) {if(feof($fp))
break;
$fp_data=fread($fp,31337);
usleep(500000);
}
$fp_data = ereg_replace(\\\"^.*<body>\\\",\\\"\\\",$fp_data);
$fp_data = ereg_replace(\\\"</body>.*\\\",\\\"\\\",$fp_data);
list($current,$status,$peak,$max,$reported,$bit,$song) = explode(\\\",\\\", $fp_data, 7);
list($band,$title) = explode(\\\"-\\\", $song);
if ($status != \\\"1\\\") {
echo \\\"No disponible\\\";
}
}
if (!$fp) {
echo \\\"No disponible\\\";
}
else
{
echo \\\"<a href=\\\\\\\"http://$host:$port/DLA.pls\\\\\\\">$title\\\";
echo \\\"$band\\\";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
?>
Esto lo que hace es mostrar lo ke estas pasando tambien fijate bien las siguientes variables
$current,$status,$peak,$max,$reported,$bit,$song
Saludos
$host = $row[\\\\'http://tusitio.com\\\\'];
$port = $row[\\\\'8000\\\\'];
//$stream = \\\\'/stream/1025\\\\';
// Se conecta al servidor
$fp = fsockopen($host,$port,$errno,$errstr,5);
if ($fp)
{
fputs($fp, \\\"GET /7 HTTP/1.1\\\\nUser-Agent:Mozilla\\\\n\\\\n\\\");
for($i=0; $i<1; $i++) {if(feof($fp))
break;
$fp_data=fread($fp,31337);
usleep(500000);
}
$fp_data = ereg_replace(\\\"^.*<body>\\\",\\\"\\\",$fp_data);
$fp_data = ereg_replace(\\\"</body>.*\\\",\\\"\\\",$fp_data);
list($current,$status,$peak,$max,$reported,$bit,$song) = explode(\\\",\\\", $fp_data, 7);
list($band,$title) = explode(\\\"-\\\", $song);
if ($status != \\\"1\\\") {
echo \\\"No disponible\\\";
}
}
if (!$fp) {
echo \\\"No disponible\\\";
}
else
{
echo \\\"<a href=\\\\\\\"http://$host:$port/DLA.pls\\\\\\\">$title\\\";
echo \\\"$band\\\";
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
?>
Esto lo que hace es mostrar lo ke estas pasando tambien fijate bien las siguientes variables
$current,$status,$peak,$max,$reported,$bit,$song
Saludos
