No description
Find a file
2021-01-07 00:39:51 +01:00
.gitignore Version Fonctionnelle : STEP 1 Terminée 2021-01-07 00:39:51 +01:00
Client.c Version Fonctionnelle : STEP 1 Terminée 2021-01-07 00:39:51 +01:00
makefile Version Fonctionnelle : STEP 1 Terminée 2021-01-07 00:39:51 +01:00
ReadMe.md Version Fonctionnelle : STEP 1 Terminée 2021-01-07 00:39:51 +01:00
Serveur.c Version Fonctionnelle : STEP 1 Terminée 2021-01-07 00:39:51 +01:00

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