Difference between revisions of "Server Queries:fr"

From Valve Developer Community
Jump to: navigation, search
m (A2A_PING)
m (A2A_PING)
Line 81: Line 81:
 
{| style="background:transparent;"
 
{| style="background:transparent;"
 
|
 
|
  FF FF FF FF 6A 00                                  ÿÿÿÿj.          
+
  FF FF FF FF 6A 00                                  ÿÿÿÿj.        
 
|}
 
|}
 
{|
 
{|
! Donnée !! Type !! Valeur
+
! Donnée !! Type !! Commentaire !! Valeur de l'exemple
 
|-
 
|-
| En-tête || [[byte]] || 106
+
| En-tête || [[byte]] || Toujours égal à 'j'. || 106
 
|-
 
|-
| Contenu || [[string]] ||
+
| Contenu || [[string]] || Toujours une chaîne vide. ||
 
|}
 
|}
 
==== Serveur [[Source]] ====
 
==== Serveur [[Source]] ====
Line 94: Line 94:
 
|
 
|
 
  FF FF FF FF 6A 30 30 30 30 30 30 30 30 30 30 30    ÿÿÿÿj00000000000
 
  FF FF FF FF 6A 30 30 30 30 30 30 30 30 30 30 30    ÿÿÿÿj00000000000
  30 30 30 00                                        000.          
+
  30 30 30 00                                        000.
 
|}
 
|}
 
{|
 
{|
! Donnée !! Type !! Valeur
+
! Donnée !! Type !! Commentaire !! Valeur de l'exemple
 
|-
 
|-
| En-tête || [[byte]] || 106
+
| En-tête || [[byte]] || Toujours égal à 'j'. || 106
 
|-
 
|-
| Contenu || [[string]] || 00000000000000
+
| Contenu || [[string]] || Toujours une chaîne composée de quatorze 0. || 00000000000000
 
|}
 
|}
  

Revision as of 21:27, 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 Commentaire Valeur de l'exemple
En-tête byte Toujours égal à 'j'. 106
Contenu string Toujours une chaîne vide.

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 Commentaire Valeur de l'exemple
En-tête byte Toujours égal à 'j'. 106
Contenu string Toujours une chaîne composée de quatorze 0. 00000000000000

A2S_INFO

A2S_SERVERQUERY_GETCHALLENGE

A2S_PLAYER

A2S_RULES

Voir aussi

Articles connexes

Liens externes

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