Bonsoir
Pour un TP à rendre d'ici très bientôt j'ai eu la consigne de réaliser une sorte de réseau de communication virtuel et très basique (programmes : un envoyeur, un serveur, trois destinataires), cela ce fait via des FIFO. Les données doivent être envoyées par blocs et ne peuvent pas dépasser une certaine taille.
La prof insiste sur le fait que nous ne devons utiliser que des write/read pour la lecture/écriture de ces FIFO.
L'envoyeur transmet une structure sur un FIFO (pid,uid,datas), le serveur lui doit récupérer cette structure et en extraire l'UID afin de connaitre le destinataire pour lui envoyer le tout.
Je buche juste sur une bêtise depuis deux heures - je suis assez novice dans l'utilisation du read et il me pose un gros problême au niveau de la lecture en boucle du serveur... A savoir que ce serveur doit tourner continuellement (while(1)). Il faudrait que quand le serveur puise toutes les informations sur le FIFO, il se mette en stand by le temps que d'autres données arrivent - sauf que mes manipulations se soldent par un échec, j'ai tenté :
while(read(fd,structure,255) != EOF)
{
//traitement du bloc
}
Ce procédé fait malheureusement une boucle infinie... ceci dit si je mets plusieurs instructions read à la chaine, les blocs de données différents sont bien pris en compte.
J'espère avoir été clair..Merci a+
Message édité par Er Dehydel le 22-02-2010 à 23:49:43
---------------
À défaut des dragons il me reste les moulins