Commit 19fd567447c5a6f01a56d7fd6c7e63199c244d34
1 parent
b82d369c
feat: receive messages from multiple client
Showing
1 changed file
with
21 additions
and
5 deletions
Show diff stats
server.c
@@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
9 | #include <netinet/tcp.h> | 9 | #include <netinet/tcp.h> |
10 | #include <poll.h> | 10 | #include <poll.h> |
11 | #include "server.h" | 11 | #include "server.h" |
12 | - | 12 | +#include <unistd.h> |
13 | 13 | ||
14 | #define MAX_LIGNE 512 | 14 | #define MAX_LIGNE 512 |
15 | 15 | ||
@@ -122,9 +122,11 @@ int boucleServeur2(int ecoute) | @@ -122,9 +122,11 @@ int boucleServeur2(int ecoute) | ||
122 | while(1){ | 122 | while(1){ |
123 | 123 | ||
124 | //poll | 124 | //poll |
125 | - | 125 | + int nb = poll(descripteurs, 1024, -1); |
126 | + | ||
127 | + if(nb<0){ perror("main.poll"); exit(EXIT_FAILURE); } | ||
126 | 128 | ||
127 | - //if (ecoute est active){ | 129 | + if( (descripteurs[0].revents&POLLIN) !=0){//ecoute est active |
128 | /* Attente d'une connexion */ | 130 | /* Attente d'une connexion */ |
129 | int dialogue=accept(ecoute,NULL,NULL); | 131 | int dialogue=accept(ecoute,NULL,NULL); |
130 | if(dialogue<0) return -1; | 132 | if(dialogue<0) return -1; |
@@ -136,7 +138,21 @@ int boucleServeur2(int ecoute) | @@ -136,7 +138,21 @@ int boucleServeur2(int ecoute) | ||
136 | 138 | ||
137 | /* Passage de la socket de dialogue a la fonction de traitement */ | 139 | /* Passage de la socket de dialogue a la fonction de traitement */ |
138 | //if(traitement(dialogue)<0){ shutdown(ecoute,SHUT_RDWR); return 0;} | 140 | //if(traitement(dialogue)<0){ shutdown(ecoute,SHUT_RDWR); return 0;} |
139 | - //} | 141 | + } |
142 | + | ||
143 | + for(int i = 0; i < LongueurPoll-1; i++){ | ||
144 | + if( (descripteurs[i+1].revents&POLLIN) !=0){ //A lire | ||
145 | + //printf("Gestion Client %i \n", i+1); | ||
146 | + FILE* f = fdopen(descripteurs[i+1].fd, "a+"); | ||
147 | + | ||
148 | + char ligne[MAX_LIGNE]; | ||
149 | + fgets(ligne,MAX_LIGNE,f); | ||
150 | + printf(">%i$ %s\n", i+1, ligne); | ||
151 | +sleep(1); | ||
152 | + | ||
153 | + } | ||
154 | + } | ||
155 | + | ||
140 | } | 156 | } |
141 | - | 157 | + |
142 | } | 158 | } |