Я работаю над серверной многоклиентской программой чата и создал метод, который печатает ввод, который сервер вводит во ВСЕ соответствующие клиенты.
Метод:
void *admin_handler (void *ptr) {
char strBuf [100000];
const char strExit [20] = "Server: terminated.";
while(1) {
scanf ("%s", strBuf);
int i;
for (i=0; i < nClient; i++){
if (strcmp(strBuf,"Exit") == 0){
write (nFDList [i], strExit, strlen (strExit) + 1);
quick_exit (EXIT_SUCCESS);
}
else {
write (nFDList [i], strBuf, strlen (strBuf) + 1);
}
}
};
}
Однако, когда я набираю «Выход» на стороне сервера, он выводит только «Сервер: завершен». на первый клиент, который я открываю, а когда я набираю что-либо еще, он распечатывает сообщение с сервера всем клиентам. Как я могу заставить сервер печатать strExit для всех клиентов, таких как strBuf?
ПРИМЕЧАНИЕ. NFDList [i] - это массив, в котором хранятся клиенты.