Probleme de lecture sur socket
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:
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 ? ;)