No description
.gitignore | ||
Client.c | ||
makefile | ||
ReadMe.md | ||
Serveur.c |
Projet d'Initiation à la Recherche (PIR) | 4A-IR-SI | INSA Toulouse
NOM DU PIR
Membres : (Noms ecrit de mémoire, check orthographe) - Léonie Gallois - Elies Tali - Yohan Simard - Paul Faure - Nahom Bellay - Jean Remi Hok
Tuteurs : - Didier LeBotlan - Eric AlataS
Programmes SERVEUR et CLIENT, principe général :
- Le serveur : En écoute sur un port passé en paramètre, des qu'une connexion arrive, il fork, traite la connexion dans le fils, le père se remet en attente
- Gestion de la connexion : Attends une chaine de caractère du client, et, en fonction de son contenu effectue les actions adéquates
- Chaine attendues :
* Nombre de connexions : Le serveur renverra le nombre de connexion qu'il y a eu depuis le début de son lancement
* Heure : Le serveur renverra l'heure actuelle
* Reset : Le serveur remettra le nombre de connexions a 0 et renverra un message indiquant que le nombre de connexions est réinitialisé
* Chaine inconnue : Le serveur renverra un message d'erreur
- Le client : Demande a l'utilisateur de saisir une chaine, puis, affiche la réponse du serveur
- Failles :
* Le serveur copie la chaine reçue avec strcpy -> risque de buffer Overflow
* Le serveur fork, l'attaquant peut accumuler de la connaissance
Etapes de dévellopement :
- Step 1 : FAIT
* Le serveur : Gere le nombre de connexions, à chaque connexions, il l'affiche juste.
* Le client : Se connecte et ferme la connexion aussitôt.
* Utilité : Test de l'établissement des connexions.
- Step 2 : A FAIRE
* Le serveur : Gere le nombre de connexions, à chaque connexions, dans le fils, il appelle une fonction d'affichage.
* La fonction : Reçoit la nombre de connexion, l'affiche, ainsi que son adresse mémoire.
* Le client : Se connecte et ferme la connexion aussitôt.
* Utilité : Verification que les adresses ne changent pas dans la pile d'un fork à l'autre.
- Step 3 : A FAIRE
* Le serveur : Gere le nombre de connexions, à chaque connexions, dans le fils, récupere la chaine, appelle une fonction de traitement.
* La fonction : Copie la chaine et appelle une autre fonction de traitement.
* Le client : Se connecte, demande a l'utilisateur de saisir la chaine, affiche la réponse, et ferme la connexion.
* Utilité : Test du serveur dans son fonctionnement normal.
- Step 4 : A DEFINIR