Código PHP:
$connect = fsockopen("udp://".$s_ip, $s_puerto);
fwrite($connect, "ÿÿÿÿ". chr (0x02). "getstatus". chr (0x00));
fread($connect, 4);
$status = socket_get_status($connect);
$timeout = time() +3;
if($status["unread_bytes"] == 0 or time() >=$timeout)
{
//Fehlermeldung , wenn der Server nicht antwortet , oder rconpw,ip,port falsch in der config.inc.php angeben ist.
print'OFF';
}
else
{
print'ON';
}
Bueno he intentando con muchos codigos saber el estado de un puerto UDP para servidores de juegos al parecer este es el mejor o bien que me ha dado mejores resultados. Pero ahora lo que necesito es pasarlo a funcion, como lo podria hacer y bueno mejorar, es decir, que si el fsockopen excede 30 segundos sin recivir nada que este lo muestre como OFF o time out
Espero que me pueda ayudar.
NOTA: Al estar el puerto en uso este no lo detecta y sigue y sigue hasta tirar un error