Difference between revisions of "Server Queries:fr"

From Valve Developer Community
Jump to: navigation, search
m (A2S_INFO)
m (A2A_PING)
Line 71: Line 71:
 
! Donnée !! Type !! Valeur
 
! Donnée !! Type !! Valeur
 
|-
 
|-
| En-tête || [[byte]] || 105 (0x69)
+
| En-tête || [[byte]] || 105
 
|}
 
|}
 
{| style="background:transparent;"
 
{| style="background:transparent;"
Line 86: Line 86:
 
! Donnée !! Type !! Valeur
 
! Donnée !! Type !! Valeur
 
|-
 
|-
| En-tête || [[byte]] || 106 (0x6A)
+
| En-tête || [[byte]] || 106
 
|-
 
|-
 
| Contenu || [[string]] ||  
 
| Contenu || [[string]] ||  
Line 99: Line 99:
 
! Donnée !! Type !! Valeur
 
! Donnée !! Type !! Valeur
 
|-
 
|-
| En-tête || [[byte]] || 106 (0x6A)
+
| En-tête || [[byte]] || 106
 
|-
 
|-
 
| Contenu || [[string]] || 00000000000000
 
| Contenu || [[string]] || 00000000000000

Revision as of 22:21, 18 January 2008

Il est possible d'interroger un serveur de jeu en ligne, en utilisant des paquets UDP/IP. Ce document décrit les différents formats de paquets ainsi que les types de requêtes possibles.

Types de données

Chaque requête ou réponse utilise cinq types de base agencés ensemble pour former un flux de données. Tous ces types sont little-endian, il n'y a donc aucune conversion à effectuer sur un processeur x86.

Type Description
byte Caractère non signé (8 bits).
short Entier court signé (16 bits).
long Entier long signé (32 bits).
float Nombre à virgule flottante (32 bits).
string Suite d'octets de longueur variable terminée par le caractère NUL.

Protocole

La taille des paquets utilisés par Steam est de 1400 octets en plus d'un en-tête UDP/IP. Chaque réponse contient un en-tête propre au protocole, mais si une réponse nécessite plus d'un paquet elle sera découpée et chaque paquet comprendra un en-tête additionnel.

Réponse simple

Donnée Type Commentaire
En-tête long Toujours égal à -1 (0xFFFFFFFF).
Données

Réponse multi-paquets

Serveur Goldsource

Donnée Type Commentaire
En-tête long Toujours égal à -2 (0xFFFFFFFE).
ID long Numéro unique attribué par le serveur à chaque paquet appartenant à la même réponse.
Nombre et numéro de paquet byte Les 4 bits de poids fort représentent le numéro du paquet courant (en commençant à 0) et les 4 bits de poids faible représentent le nombre total de paquets (de 2 à 15).
Données

Serveur Source

Donnée Type Commentaire
En-tête long Toujours égal à -2 (0xFFFFFFFE).
ID long Même signification que pour un serveur Goldsource, cependant si le bit de poids fort est à 1 alors la réponse a été compressé avec l'algorithme Bzip2 avant d'être découpée. Après avoir récupéré et assemblé tous les paquets il faut décompresser la réponse (avec BZ2_bzBuffToBuffDecompress() en C ou bzdecompress() en PHP par exemple) avant de pouvoir la traiter.
Nombre de paquets byte Nombre total de paquets de la réponse.
Numéro de paquet byte La numérotation commence à 0.
Taille des paquets short Uniquement présent dans la nouvelle version du moteur Source, il s'agit de la taille maximale que peut prendre un paquet avant qu'un découpage ne se produise (auparavant il était impossible de changer cette taille). Cela concerne uniquement le protocole de jeu, dans celui d'interrogation des serveurs il n'est toujours pas possible de demander des paquets de plus petite taille que celle par défaut. La valeur par défaut est de 1248 octets (0x04E0), mais un administrateur de serveur Team Fortress 2 peut la diminuer.
Uniquement présent dans le premier paquet (numéro 0) si la réponse a été compressé :
Donnée Type Commentaire
Taille de la réponse long Nombre d'octet qu'occupe la réponse une fois décompressée.
Somme CRC32 long Somme de contrôle CRC32 de la réponse décompressée.
Données

Comme les paquets UDP peuvent arriver dans le désordre et en différé, chaque paquet devrait être contrôlé avec son ID et son numéro pour s'assurer qu'il s'agit toujours de la même réponse !

Requêtes

Le format des requêtes est le même que celui des réponses (il est rare d'en faire une multi-paquets toutefois). Les requêtes doivent être envoyées en UDP sur le port d'écoute du serveur (généralement 27015).

A2A_PING

Format de la requête

Donnée Type Valeur
En-tête byte 105
FF FF FF FF 69                                     ÿÿÿÿi           

Format des données

Serveur Goldsource

FF FF FF FF 6A 00                                  ÿÿÿÿj.           
Donnée Type Valeur
En-tête byte 106
Contenu string

Serveur Source

FF FF FF FF 6A 30 30 30 30 30 30 30 30 30 30 30    ÿÿÿÿj00000000000
30 30 30 00                                        000.            
Donnée Type Valeur
En-tête byte 106
Contenu string 00000000000000

A2S_INFO

Format de la requête

Donnée Type Valeur
En-tête byte 84
Contenu string Source Engine Query
FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69    ÿÿÿÿTSource Engi
6E 65 20 51 75 65 72 79 00                         ne Query.

Format de la réponse

Serveur Goldsource

FF FF FF FF 6D 37 37 2E 31 31 31 2E 31 39 34 2E    ÿÿÿÿm77.111.194.
31 31 30 3A 32 37 30 31 35 00 46 52 20 2D 20 56    110:27015.FR - V
65 72 79 47 61 6D 65 73 2E 6E 65 74 20 2D 20 44    eryGames.net - D
65 61 74 6D 61 74 63 68 20 2D 20 6F 6E 6C 79 20    eatmatch - only 
73 75 72 66 5F 73 6B 69 20 2D 20 6E 67 52 00 73    surf_ski - ngR.s
75 72 66 5F 73 6B 69 00 63 73 74 72 69 6B 65 00    urf_ski.cstrike.
43 6F 75 6E 74 65 72 2D 53 74 72 69 6B 65 00 0C    Counter-Strike..
12 2F 64 6C 00 01 77 77 77 2E 63 6F 75 6E 74 65    ./dl..www.counte
72 2D 73 74 72 69 6B 65 2E 6E 65 74 00 00 00 01    r-strike.net....
00 00 00 00 9E F7 0A 00 01 01 00                   ....ž÷.....
Donnée Type Commentaire Valeur de l'exemple
En-tête byte Toujours égal à 'm'. 109
Adresse string Adresse IP et port du serveur. 77.111.194.110:27015
Nom string Nom du serveur. FR - VeryGames.net - Deatmatch - only surf_ski - ngR
Carte string Nom de la carte jouée actuellement. surf_ski
Dossier string Nom du dossier contenant les fichiers du jeu. cstrike
Jeu string Nom complet du jeu. Counter-Strike
Joueurs byte Nombre de joueurs actuellement en train de jouer 12
Places byte Nombre maximum de joueurs que le serveur peut accueillir. 18
Protocole byte Version du protocole utilisé par le serveur. 47
Serveur byte Indique le type du serveur :
  • 'd' pour un serveur dédié
  • 'l' pour un serveur non dédié
  • 'p' pour un serveur HLTV
'd'
Environnement byte Indique le système d'exploitation du serveur :
  • 'l' pour Linux
  • 'w' pour Windows
'l'
Visibilité byte Indique si le serveur requiert un mot de passe :
  • 0 pour public
  • 1 pour privé
0
Mod byte Indique si le jeu est un Mod : 1
Uniquement présent si le jeu est Mod :
Donnée Type Commentaire Valeur de l'exemple
Lien string URL du site d'information du Mod. www.counter-strike.net
Lien de téléchargement string URL du site où télécharger le Mod.
byte Toujours égal à 0. 0
Version long Version du Mod installée sur le serveur. 1
Taille long Espace (en octet) qu'occupe le Mod sur le disque dur. 184000000
Genre byte Indique le genre du Mod :
  • 0 pour un Mod solo et multijoueur
  • 1 pour un Mod uniquement multijoueur
0
Dll byte Indique si le Mod utilise sa propre dll :
  • 0 pour la dll d'Half-Life
  • 1 pour une dll propriétaire
1
VAC byte Indique si le serveur utilise le VAC :
  • 0 pour non sécurisé
  • 1 pour sécurisé
1
Bots byte Nombre de bots présents sur le serveur. 0

Serveur Source

A2S_SERVERQUERY_GETCHALLENGE

A2S_PLAYER

A2S_RULES

Voir aussi

Articles connexes

Liens externes

Template:Otherlang:fr Template:Otherlang:fr:en