Salut à vous cher developpeur.
Je suis en train de développer une appli de chat. Le principe est 1 client écrit,il envoie son message au serveur qui lui l'envoie aux autres clients (un chat koi ). Mon problème est à la réception des msg coté client.
Supposons que les clients A,B,C,D sont en train de chatter. Si A envoie un msg, les autres le reçoivent mais il ne s'affiche pas. Je suis obligé de taper des <enter> (\n) pour qu'il affiche reçu de l'autre client. J'ai essayé de mettre des fflush(NULL) partout mais ca marche toujours pas.
Voici le code du thread qui reçoit les requetes du client:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
void* rcv_request(void *arg){
  request rep;
 
  while(1){
    blank_message(&rep);
 
    fflush(NULL);
 
    if(read(sock,&rep,sizeof(rep)) == -1){
      fprintf(stderr,"read rcv_request error\n");
      pthread_exit((void *) arg);
    }
    sem_wait(&mutex);
    fprintf(stdout,"<%s>:",rep.pseudo);
    fputs(rep.message,stdout);
    fprintf(stdout,"\n");
    sem_post(&mutex);
 
  }
 
 
    pthread_exit((void *)0);
}

Quelqu'un pourrait-il m'aider ?