Échanger des données entre le client et le server sur Gmod

Découvre comment utiliser correctement la bibliothèque net sur Gmod

Niveau Débutant
6 minutes de lecture
Utiliser la bibliothèque net sur Gmod

Dans cette partie, nous allons aborder l'envoi et la réception de données dans un message net, en commençant par la théorie, puis en pratique avec un message net qui demande au serveur de nous donner un nombre aléatoire entre 1 et 6.

Le buffer

Quand vous recevez un message net, toutes les données de ce message sont écrites dans un buffer qui contient tous les bits des données. Les 16 premiers bits d'un message net (ou deux octets, car un octet contient 8 bits) correspondent au Header du message, qui est l'id unique. Cet identifiant numérique correspond à un nom de message qui a été ajouté à la string table via util.AddNetworkString().

Lorsqu'un message net est reçu, la fonction net.Incoming() lit les 16 premiers bits du message:

Puis, elle convertit l'identifiant numérique en nom de message pour exécuter la fonction qui lui correspond si elle existe (la fonction attribuée avec net.Receive()) Les données suivantes sont exclusivement les données que vous allez envoyer dans vos messages. Le header est écrit automatiquement lorsque vous faites net.Start().

Les types de données

Vous pouvez envoyer la plupart des types de données de Garry's Mod via la bibliothèque net, et dans le cas échéant, vous pouvez envoyer des données compressées (ou non), comme du JSON. Les types de données suivants ont des fonctions pour les envoyer et les recevoir:

Compresser les chiffres entiers (Int et UInt)

Les fonctions d'envoi pour les types Integer et Unsigned Integer ont un argument supplémentaire pendant la lecture et l'écriture: le nombre de bits à utiliser.

Les valeurs minimales/maximales par nombre de bits sont disponibles pour les Integer et les Unsigned Integer.

Example: Roll the Dice

Dans cet exemple, nous allons programmer un système qui donnera un nombre aléatoire entre 1 et 6 au client qui le demande. Le nombre est généré côté serveur.

Lorsque vous ferez !rtd dans votre chat, vous recevrez un nombre entre 1 et 6. Dans la prochaine partie de notre série, nous allons aborder l'envoi de données binaires avec net.WriteData() et leur compression avec util.Compress()

Rejoindre la communauté de développeurs

Rejoins notre communauté de développeurs pour progresser et t'améliorer

Passer au chapitre suivant :