Bonjour!
Voilà, depuis un petit moment je m'efforce à créer un petit morceau de code portable pour gérer les envoies de données en TCP/IP par les sockets.
J'utilise la fonction "select" qui est souvent (dans un while) appelée afin de vérifier les descripteurs de fichiers.
Au niveau du client, lorsque je veux envoyer des données, je fais un FD_SET avec en argument la socket de communication et le descripteur de fichier "write", de manière à ce que le code suivant mon "select" soit exécuté. Ensuite, une fois que j'ai fini mon envoie de donnée je fais un FD_CLR sur la socket et le descripteur de fichier "write".
Hors, cela ne fonctionne pas comme je le désirerai...
Je m'explique :
La première fois que j'utilise mon FD_SET pour écrire, tout se passe comme il faut, les données sont envoyées. Ensuite, quand l'envoie est terminé, on arrive au FD_CLR (que je juge nécessaire pour ne pas repasser dans le code suivant le select si il n'y a rien à faire!). Cependant, lorsque je redemande une écriture de donnée en "resollicitant" FD_SET, rien ne se passe (comme si le FD_CLR précédent avait "endormi" mon descripteur de fichier).
Pour résumer : (Ce n'est pas le code linéaire tel qu'il est dans mon programme, juste des extraits!)
Auriez vous une idée pour résoudre mon problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
En espérant avoir été suffisamment clair!
Merci beaucoup!

 

 
		
		 
        

 
			
			


 
   


 Petit soucis de FD_SET et FD_CLR
 Petit soucis de FD_SET et FD_CLR
				 Répondre avec citation
  Répondre avec citation
Partager