From 19fd567447c5a6f01a56d7fd6c7e63199c244d34 Mon Sep 17 00:00:00 2001 From: achemin1 Date: Fri, 22 Jan 2021 09:56:47 +0100 Subject: [PATCH] feat: receive messages from multiple client --- server.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/server.c b/server.c index 5b278d0..459da6b 100644 --- a/server.c +++ b/server.c @@ -9,7 +9,7 @@ #include #include #include "server.h" - +#include #define MAX_LIGNE 512 @@ -122,9 +122,11 @@ int boucleServeur2(int ecoute) while(1){ //poll - + int nb = poll(descripteurs, 1024, -1); + + if(nb<0){ perror("main.poll"); exit(EXIT_FAILURE); } - //if (ecoute est active){ + if( (descripteurs[0].revents&POLLIN) !=0){//ecoute est active /* Attente d'une connexion */ int dialogue=accept(ecoute,NULL,NULL); if(dialogue<0) return -1; @@ -136,7 +138,21 @@ int boucleServeur2(int ecoute) /* Passage de la socket de dialogue a la fonction de traitement */ //if(traitement(dialogue)<0){ shutdown(ecoute,SHUT_RDWR); return 0;} - //} + } + + for(int i = 0; i < LongueurPoll-1; i++){ + if( (descripteurs[i+1].revents&POLLIN) !=0){ //A lire + //printf("Gestion Client %i \n", i+1); + FILE* f = fdopen(descripteurs[i+1].fd, "a+"); + + char ligne[MAX_LIGNE]; + fgets(ligne,MAX_LIGNE,f); + printf(">%i$ %s\n", i+1, ligne); +sleep(1); + + } + } + } - + } -- libgit2 0.21.2