Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2009, 04:03
Avatar de xalupeao
xalupeao
 
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años
Puntos: 12
Problema con fsockopen y socket_get_status

Bueno amigos estoy con una pequeña duda y gran problema, estoy creando una funcion para ver el estado de un servidor de juego y saber si este esta online u offline.
Cuando el servidor esta online no hay problema y dice servidor online con un tiempo de respuesta execlente.
Pero si el servidor esta offinle a este le toma minutos en dar la respuesta y decir que el servidor esta offline.

--------
funcion
---------

Código PHP:
function Ping($ip,$puerto){
#nos conectamos al servidor de juego
$connect fsockopen("udp://".$ip$puerto$errno$errstr10);
$query "\xFF\xFF\xFF\xFF\x54Source Engine Query\x00";
fwrite($connect$query);
fread($connect4);
$status socket_get_status($connect);
$timeout time() +3;
    if(
$status["unread_bytes"] == or time() >= $timeout) {
    
//Fehlermeldung , wenn der Server nicht antwortet , oder rconpw,ip,port falsch in der config.inc.php angeben ist. 
    
$ping 'server offline';
    }else{
    
$ping 'server online';
    }
return 
$ping
Algunas veces lanza este error

Fatal error: Maximum execution time of 60 seconds exceeded in XXXXXXX donde XXXXXXX da a linea
Código PHP:
$status socket_get_status($connect); 
Pregunta:

¿Como podria hacerlo para que sea mas rapida la respuesta del offline, en que parte puedo agregar algo para determinar el tiempo de espera a la respuesta?

Gracias, espero su ayuda.