Bonjour !

Je débute en perl, et j'aimerais faire un script pour pouvoir récupérer des données d'un serveur de jeu. C'est à dire que j'aimerais un script qui permette d'afficher une page web avec le nombre de joueur connecté sur le serveur ( cela sera par script CGI, je suis au courant ). Pour cela, je sais qu'il faut manier des sockets. J'ai appris qu'il fallait utiliser le module IO::Socket::INET qui était une interface de plus haut niveau pour la programmation des sockets.
Le jeu étant Jedi Knight 2, il est basé sur le protocole QUAKE3, et utilise l'UDP 28070. J'ai déjà fait un petit script qui à l'air de marcher mais ne renvoie aucune valeur...

#!/usr/bin/perl -w

use strict;
use IO::Socket::INET;

my $sock = IO::Socket::INET->new(PeerAddr => 'adresse-ip-du-serv',
PeerPort => '28070',
Proto => 'UDP');

my $data;
open(FIC,'>','donnees.txt') or die("Can't open file : $!\n");

while($data = <$sock>)
{
print FIC "$data\n";
}

close(FIC);
Je suis obligé de Ctrl-C pour arrêter le script. Le fichier donnees.txt se creer bien mais rien n'y est écris... Je ne reçois aucune valeurs.

J'ai fait un peu de recherche et j'ai pu trouvé ceci :

"To query a server is very simple. Send a connectionless (UDP) packet with 4 OOB header bytes (0xff) and the text string getstatus. There are many sites which contain a thorough description of this so I won't go into details." [...]

Cf. Quake3 Network_Protocol

Dois-je prendre en compte ce qui est dit? A vrai dire, je ne comprend pas du tout ce qu'il en est.

Merci de votre aide !