Projet Réseaux S6
Pour compiler:
- Le projet en entier :
make - uniquement le code c :
make c - uniquement le code java :
make java
Pour une compilation complète à neuf, il faut lancer make clean all
java -jar Streamer.jarpermet de lancer un diffuseur par défaut avec les caractéristiques suivantes :- Id = STREAMER
- Port de réception TCP = 4242
- Adresse de multi diffusion = 225.0.0.0
- Port de multi diffusion = 5001
- Fréquence d'envoi des messages (en ms) = 1000
- Ce diffuseur ne se connectera à aucun gestionnaire
- Des messages par défaut sont diffusés
- Des images par défaut sont diffusées
java -jar Streamer.jar ID PORT_TCP ADRESSE_MULTI PORT_MULTI FREQ- Exemple :
java -jar Streamer.java myStream 4242 225.0.0.0 5001 5000 - Ce diffuseur ne se connectera à aucun gestionnaire
- Des messages par défaut sont diffusés
- Exemple :
java -jar Streamer.jar ID PORT_TCP ADRESSE_MULTI PORT_MULTI FREQ ADRESSE_GEST PORT_GEST- Exemple :
java -jar Streamer.jar myStream 4242 225.0.0.0 5001 5000 localhost 4343 - Ce diffuseur se connecte au gestionnaire d'adresse
ADRESSE_GESTtournant sur le portPORT_GEST - Des messages par défaut sont diffusés
- Exemple :
java -jar Streamer.jar config messagesconfigest un fichier de configuration de diffuseur. Son format doit être le suivant:- la première ligne contient l'id du diffuseur
- la deuxième, son port de réception TCP
- la troisième, l'addresse de multicast
- la quatrième, le port de multicast
- la cinquième, la fréquence d'envoi.
messagescontient les messages que l'on souhaite diffuser.- La première ligne de ce fichier doit être l'id de l'auteur du message. Ensuite, chaque ligne contient un message.
java -jar Streamer.jar config messages managerconfigetmessagessont comme précédemment.managerest un fichier pour indiquer à quel gestionnaire le diffuseur doit se connecter- La première ligne du fichier contient l'adresse du gestionnaire
- La deuxième contient son port
java -jar Streamer.jar config messages manager imagesconfig,messages,managersont comme précédemmentimagesest un fichier contenant des chemins vers les images à diffuser- Un chemin par ligne
Le gestionnaire se lance ainsi : ./manager [OPTION]... PORT [NB_DIFF]
PORTest le n° du port sur lequel le gestionnaire écoute les connexions entrantes[OPTION]...les options pour le gestionnaire-haffiche l'aide-vactive le mode verbeux-d TEMPSfais attendre le gestionnaire TEMPS secondes entre chaque envoi de RUOK; la valeur par défaut est 30 secondes.NB_DIFFpeut être précisé ou pas. S'il ne l'est pas le gestionnaire gérera au plus 100 diffuseurs. S'il est précisé il gérera au plus NB_DIFF diffuseurs où NB_DIFF < 100.
Par exemple, la commande ./manager -v -d 5 5000 23 lance un gestionnaire en mode verbeux sur le port 5000, il testera la présence d'un diffuseur toutes les 5 secondes, et a au plus 23 diffuseur à gérer.
java -jar JavaClient.jar ADRESSE_MULTI PORT_MULTI ADRESSE_TCP PORT_TCPjava -jar JavaClient.jarlance un client par défaut.- Équivalent à
java -jar JavaClient.jar 225.0.0.0 5001 localhost 4242
- Équivalent à
On peut lancer le client C pour qu'il communique soit avec un gestionnaire, soit avec un diffuseur+multicast. Il n'y a pas de connexion par défaut. Le client doit connaître les adresses du diffuseur ou du gestionnaire avec lequel il veut communiquer.
Communiquer avec un gestionnaire : ./client adresse port où adresse et port sont ceux du gestionnaire en question.
Communiquer avec un diffuseur et multidiffuseur : ./client adresse_diff port_diff adresse_multicast port_multicast fichier où fichier est le fichier où sont affichés les messages diffusés par le multi-diffuseur. La bonne démarche est : Ouvrir un terminal, tapez tty et copier-coller le résultat affiché à la place de fichier. Ainsi les messages s'afficheront dans ce nouveau terminal.
Dans c/ :
manager.cGestionnaire, même fonctionnement qu'un serveur TCP threadémessage.cVérification et création des messagesmessage.hDes constantes utiles pour les messagesclient_keyboard.cClient en C interactifclient.cManipulation d'un client via des fonctions. Utile lorsqu'on code un client "en dur"
Dans java/ :
Streamer.javaqui est une classe représentant les diffuseursJavaClient.javale client permettant d'envoyer des messages à un diffuseur et de recevoir les messages envoyés en multicastJavaClientManager.javale client permettant d'intéragir avec les gestionnaires- D'autres classes permettant de gérer les messages, une petite interface graphique et de créer des threads pour les clients et diffuseurs qui sont multithreadés.