Bonjour,
j'ai un execice à réaliser pour une mise en application client-serveur avec l'utilisation des sockets, je suis débutant en C, pouvez vous m'aider, voici le sujet :
On se propose de réaliser une application de jeu de tarot en réseau en langage C (aucune interface
graphique n'est nécessaire).
1. quels sont vos choix de conception (qui a le droit de faire quoi, qui joue, avec quoi, qui
mène le jeu, qui commence à parler, ...) ?
2. schématisez les processus en jeu et les communications (qui parle avec qui ?)
3. quelles informations vont s'échanger ces processus ?
4. Décrivez les échanges d'information sur un schéma (protocole).
5. Quels types de protocoles (UDP/TCP) allez-vous choisir pour chacune des communications
à établir ?
6. Quels programmes allez-vous écrire ? Vous donnerez les paramètres d'entrée, vous décrirez
le corps de traitements ainsi que les sorties.
7. Vous devez tester votre solution, comment procédez-vous ?
1/ Ce n'est pas un travail de conception réseau, plutôt de la conception tout court du processus de jeu.
2/ Eh bien, le schéma qui me parraît le plus simple à mettre en place est le suivant :
¤ Un serveur qui gère la distribution du jeu et maintient en permanence une liste des cartes, qu'il communique à chaque tour aux clients.
¤ Le serveur donne alternativement la parole aux clients, qui répondent en ne donnant que leur action.
¤ Le serveur met alors à jour et renvoie le nouvel état à chacun avant de passer la parole.
Evidemment, c'est un peu trop simple pour être parfait, mais c'est fonctionnel.
Si tu veux une autre piste, je suis plutôt pour :
¤ Le serveur distribue et envoie son état à chacun
¤ Les clients envoient leurs actions tour à tour avec un système de jeton
¤ Chacun met à jour sa vision du jeu
¤ Régulièrement, les joueurs contactent le serveur avec une somme de vérification afin de s'assurer de l'intégrité de leurs données
¤ C'est toujours le serveur qui désigne les gagnants
Ce système implique que chacun implémente un système de règles afin d'éviter les conflits, mais il évite la centralisation des données sur le serveur et l'éventuelle interception des jeux à chaque envoi. ( Un jeu de tarot sécurisé, je pousse peut être un peu.. )
3/ Eh bien, décrit au dessus
4/ Je ne suis pas non plus élève, et n'ai pas d'éditeur de diagramme sous la main. Je te laisse écrire le protocole et sa documentation
5/ S'il faut vraiment exploiter tes connaissances en matière d'architecture réseau, tu peux procéder ainsi :
¤ Des trames TCP en unicast pour les communication d'un joueur avec le serveur ( distribution, chien, conflits... )
¤ Des trames en broadcast ou UDP pour le reste, puisque tout est public
6/ Eh bien, je vois bien un programme client et un programme serveur x)
7/ VM Powaaa !
__________________________ Développeur/Webmaster/Administrateur Réseau
---
La différence entre un homme politique et un expert en sécurité tient en ce fait que corrompu, le second est au chômage.