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 ?![]()
Partager