Projet réseaux semestre 1 master 1 université d'Artois
Loquicom c50f0f2428 :fire: Suppr ancienne icone | 5 سال پیش | |
---|---|---|
client | 5 سال پیش | |
serveur | 5 سال پیش | |
.gitignore | 5 سال پیش | |
README.md | 5 سال پیش |
Pour lancer le serveur il suffit de le compiler avec make
(il est possible de recréer les dépendances avec make depend
). Pour lancer le serveur il suffit d'exécuter le fichier main. Pour couper le serveur Ctrl+C.
Pour lancer le client il suffit d'exécuter le fichier start.sh. Pour la compilation il faut inclure la bibliothèque json.jar présente dans le dossier lib. De même pour la bonne exécution de Client.jar (lancé par start.sh) le dossier lib contenant la bibliothèque json.jar doit être dans le même dossier je l'archive java.
Menu
Jeu
Le BomberStudent pose les bombes vers la où il regarde
Pour le réseau notre projet utilise un serveur UDP et deux serveurs TCP. Le serveur UDP permet le broadcast pour repérer les serveurs disponibles. Le 1er serveur TCP permet la communication entre le client et le serveur, c'est par celui-ci que passent toutes les requêtes du client au serveur (exemple : déplacement du personnage), et c'est par cette connexion que le serveur y répond (exemple : déplacement autorisé ou non). La seconde connexion permet la communication entre le serveur et le client, il est utilisé par le serveur pour notifier un événement au client (exemple: explosion d'une bombe), le serveur n'attend pas de réponse du client.
Le serveur possède 3 Threads (le principal, le serveur UDP, le serveur TCP) plus un Thread par client. Le serveur attend la réception d'une requête client, la parse et regarde s'il posséde un handler pour l'action demandée. S'il y en a un alors il l'exécute sinon il renvoie un message d'erreur. Le serveur possède aussi une fonction delay qui va créer un thread attendre X secondes et appeler un callback, elle est utilisée pour gérer le temps d'explosion des bombes et de l'invicibilité.
Le client utilise 3 Threads, le thread principal qui lance le jeu, le thread d'attente de notification du serveur (attend en boucle la prochaine notification du serveur) et le thread d'affichage (qui utilise JavaFX). L'affichage est fait en utilisant la webview de JavaFX pour afficher du HTML. Le réseau est géré par la class BomberStudentClient qui s'occupe de formatter les requêtes et d'utiliser le client TCP. Pour les notifications du serveur c'est la class BomberStudentRequest (qui est lancée dans un thread par BomberStudentClient) qui les réceptionne et qui regarde si le client à un handler associé à appeler. Il est possible de changer les sprites en modifiant les images dans le dossier file/sprite (deux lots de sprites sont fournis avec le projet, ceux de bomberman et une version simpliste utilisée pour nos tests).
Client