J'ai un petit soucis pour synchroniser la communication entre un serveur et un client.
Mon serveur envoit des données au client, en faisant plusieurs write ... en gros :
Serveur Client
write(fd,"TEST1",5) read(fd,bufTEST1,bufsize)
write(fd,"TEST2",5) read(fd,bufTEST2,bufsize)
write(fd,"TEST3",5) read(fd,bufTEST3,bufsize)
write(fd,"TEST4",5) read(fd,bufTEST4,bufsize)
Tout fonctionne bien jusqu'au TEST4 ... mes 3 1ers read recoivent bien chacun TEST1,2 et 3, mais le dernier ne recoit rien du tout et attend indéfiniement.
Ce qui se passe apparemment, c'est que le write pour TEST4 se lance et renvoit 5, alors que aucun read n'est activé coté client. Le client lance ensuite son read pour le TEST4 mais ne recoit rien, puisque le write a déjà été fait pour le TEST4.
Est il possible d'effectuer une synchro pour que chaque read recoivent correctement le write qui lui est associé ? Pour l'instant j'ai resolu le probleme en faisant un sleep après chaque write, mais j'espère un peu plus "propre" comme solution.