Bonus Work in Progress : Programmation d’un serveur de jeu « Donjon en réseau » (Sources version C# du 26 juillet 2019)

Bonus Work in Progress : Programmation d’un serveur de jeu « Donjon en réseau » (Sources version C# du 26 juillet 2019)

Voilà où j’en suis :

Comme vous le verrez dans les sources j’ai adapté le serveur C# de l’atelier « Les bases de la programmation réseau« .

Voici les adaptations :

  • J’ai passé la boucle d’attente de la socket en non bloquante (pour ça je teste la propriété « available » de mon listener et ne lit la socket que si elle contient quelque chose.
  • J’ai ajouté un « sleep » (et non un slip) dans la boucle pour ne pas satirer le CPU
  • J’ai commencé à mettre en place l’interface « ACSII » et ça déchire bien je trouve (voir la fonction DisplayTerminal pour voir les méthodes Console que j’utilise c’est assez simple !).
  • J’ai mis en place une classe ServerContext qui contient toutes les données et variables relatives au contexte du serveur
  • Je gère un log avec la liste des paquets de données reçus des clients (et ils sont affichés dans l’interface ASCII).

Vous avez aussi un client en Lua fourni. Attention à changer l’adresse IP dans le client qui est en dur au début du code.

Pour connaitre l’IP de votre PC, lancez le serveur et elle s’affiche en rose (du coup regardez le code de GetLocalIPAddress pour savoir comment je fais).

Voilà vous pouvez déjà voir l’interface et voir le client se connecter, mais la liste des clients n’est pas gérée encore (la semaine prochaine !). Et si vous appuyez sur les touches de direction du client vous pouvez envoyer des paquets de données au serveur et voir le log se mettre à jour.

Voici les sources :

Pour accéder à ce contenu il faut souscrire un abonnement de type Club Lite et Club Pro
Pour t'abonner clique-ici

Tu as déjà un compte Club Lite et Club Pro ? Connecte-toi en cliquant ici :
Connexion
Already a member? Connectez-vous ici

Les commentaires sont fermés.

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.