Problème fread()
Odd
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai un petit souci avec mon code :
Je pense que certains auront compris que j'essaye de communiquer avec un serveur half-life (hl1).
Le script met longtemps à s'executer et voici l'affichage :
Lorsque j'enlève l'argument "4" (length) du fread, le script s'exécute très rapidement mais bien sur rien ne m'est retourné...
Quelqu'un aurait il une idée ?
J'ai un petit souci avec mon code :
$server_name = "server1.freeserv.fr";
$server_port = "34000";
$fp = fsockopen("udp://".gethostbyname($server_name), $server_port, $errno, $errstr, 30);
if (!$fp) {
echo "Echec de la connection<br />\n";
echo "$errstr ($errno)<br />\n";
} else {
echo "Connection réussie<br />\n";
echo "....Envoi de la requête<br />\n";
echo "...........Valeur retour du fputs : ".fputs($fp, "/xff/xff/xff/xffchallenge rcon\n", 19)."<br />\n";
echo "....Lecture de la réponse<br />\n";
$reponse = fread($fp,4);
echo "...........Valeur retour du fread : ".$reponse."<br />\n";
fclose($fp);
}
Je pense que certains auront compris que j'essaye de communiquer avec un serveur half-life (hl1).
Le script met longtemps à s'executer et voici l'affichage :
Connection réussie ....Envoi de la requête ...........Valeur retour du fputs : 19 ....Lecture de la réponse
Lorsque j'enlève l'argument "4" (length) du fread, le script s'exécute très rapidement mais bien sur rien ne m'est retourné...
Quelqu'un aurait il une idée ?
21 réponses
Re,
c'est à dire "Si tout s'est bien passé" ?
J'ai l'impression que la lecture de la trame (du flux) plante totalement, et fait planter par la même occasion le script php, car la suite du script ne s'exécute même pas (echo "...........Valeur retour du fread : ".$reponse."<br />\n";).
Normalement, même si la fonction stream_get_line échouait, je devrai avoir l'affichage de ce qu'il y a à l'intérieur du echo suivant la commande...
En fait le problème n'est pas vraiment que cela touche des serveurs cs, vu que cela ne reste que du php...
Je n'ai pas d'outils de débugage...
Ce qui serait intéressant ça serait de savoir dans quel type de situation une fonction php de lecture de flux plante, et surtout si il n'y a pas de fonction permettant de mettre une sorte de timeout (si la lecture ne retourne rien au bout de se temps, elle s'arrete)...
c'est à dire "Si tout s'est bien passé" ?
J'ai l'impression que la lecture de la trame (du flux) plante totalement, et fait planter par la même occasion le script php, car la suite du script ne s'exécute même pas (echo "...........Valeur retour du fread : ".$reponse."<br />\n";).
Normalement, même si la fonction stream_get_line échouait, je devrai avoir l'affichage de ce qu'il y a à l'intérieur du echo suivant la commande...
En fait le problème n'est pas vraiment que cela touche des serveurs cs, vu que cela ne reste que du php...
Je n'ai pas d'outils de débugage...
Ce qui serait intéressant ça serait de savoir dans quel type de situation une fonction php de lecture de flux plante, et surtout si il n'y a pas de fonction permettant de mettre une sorte de timeout (si la lecture ne retourne rien au bout de se temps, elle s'arrete)...
si j'ai raison, regarde si tu peux faire des thread en php et si oui, implémente en 1 qui regardera la réponse (5seconde de vie sera suffisant)