Je cherche desesperemment a interroger un serveur de jeu via une connexion udp
Apres avoir cherché sans succès un script tout fait, j'ai grifouillé le mien !
Par contre ca ne marche pas, ca freeze ! et puis plus rien !
le script :
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $serverip = "xxx.xxx.37.59";
my $serverport = 27015;
my $reponse;
my $sock = new IO::Socket::INET(
PeerAddr => $serverip,
PeerPort => $serverport,
Proto => 'udp');
$sock or die "no socket :$!";
my $msg = "/xFF/xFF/xFF/xFFgetstatus";
$sock->send($msg) || die "send: $!";
$sock->recv($reponse, 1024) or die "Error... $!" ;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Samuel Mouniée
Bonjour,
Bonsoir a tous !
Je cherche desesperemment a interroger un serveur de jeu via une connexion udp Apres avoir cherché sans succès un script tout fait, j'ai grifouillé le mien !
Par contre ca ne marche pas, ca freeze ! et puis plus rien !
Le protocole UDP est un protocole de messages non connecté à arrivé et ordre non garanti. Donc il faut gerer les pertes de messages et leur ordonnancement.
Vous pouvez faire de l'UDP non connecté ou pseudo connecté.
Un bon debut est utilisé IO::Select pour attendre l'arrivé d'un message avec un timeout, puis de le lire ou de recommencer.
En gros, l'algo est :
- creation des sockets - ajout des sockets dans la file d'attente .... - tant que je n'ai pas de reponse - j'envoi le message - j'attend x ms l'arrive de la reponse - je lis la reponse - je verifie la reponse ( savoir si c'est celle attendu ) - je traite la reponse ...
une phase d'ouverture et de fermeture est a prevoir sur le meme schema.
merci d'avance pour votre aide
padkoa,
Fabrice
.s'nuoM
Bonjour,
Bonsoir a tous !
Je cherche desesperemment a interroger un serveur de jeu via une connexion udp
Apres avoir cherché sans succès un script tout fait, j'ai grifouillé le mien !
Par contre ca ne marche pas, ca freeze ! et puis plus rien !
Le protocole UDP est un protocole de messages non connecté à arrivé et
ordre non garanti. Donc il faut gerer les pertes de messages et leur
ordonnancement.
Vous pouvez faire de l'UDP non connecté ou pseudo connecté.
Un bon debut est utilisé IO::Select pour attendre l'arrivé d'un message
avec un timeout, puis de le lire ou de recommencer.
En gros, l'algo est :
- creation des sockets
- ajout des sockets dans la file d'attente
....
- tant que je n'ai pas de reponse
- j'envoi le message
- j'attend x ms l'arrive de la reponse
- je lis la reponse
- je verifie la reponse ( savoir si c'est celle attendu )
- je traite la reponse
...
une phase d'ouverture et de fermeture est a prevoir sur le meme schema.
Je cherche desesperemment a interroger un serveur de jeu via une connexion udp Apres avoir cherché sans succès un script tout fait, j'ai grifouillé le mien !
Par contre ca ne marche pas, ca freeze ! et puis plus rien !
Le protocole UDP est un protocole de messages non connecté à arrivé et ordre non garanti. Donc il faut gerer les pertes de messages et leur ordonnancement.
Vous pouvez faire de l'UDP non connecté ou pseudo connecté.
Un bon debut est utilisé IO::Select pour attendre l'arrivé d'un message avec un timeout, puis de le lire ou de recommencer.
En gros, l'algo est :
- creation des sockets - ajout des sockets dans la file d'attente .... - tant que je n'ai pas de reponse - j'envoi le message - j'attend x ms l'arrive de la reponse - je lis la reponse - je verifie la reponse ( savoir si c'est celle attendu ) - je traite la reponse ...
une phase d'ouverture et de fermeture est a prevoir sur le meme schema.