Fonction fcntl - C - Programmation
Marsh Posté le 18-01-2006 à 23:23:22
AlphaZone a écrit : En faite, à partir d'une boucle while principale, je dois mettre des "sous" boucles while. Celles-ci étant indépendantes les une des autres grâce à la fonction fcntl. Et enfin, ce qui me pose problème est que je ne sais pas trop comment me servir la cette fonction, comment gérer les boucles whiles. |
Hum... je ne savais pas que la fonction "fcntl" avait pour but de rendre des boucles "while()" indépendantes. D'ailleurs, je ne comprends même pas ta notion d'indépendance.
while(i > 0) |
Là, j'ai deux boucles "while" totalement indépendantes l'une de l'autre... et sans utiliser "fcntl"
Bon, arrêtons le massacre et va voir ces liens
Marsh Posté le 23-01-2006 à 17:35:16
C'est bon, j'ai pu obtenir de plus ample information et en faite ce n'était pas F_SETFD que je devais utiliser mais F_SETFL.
D'ailleur je devais également déclarer cette fonction à l'extérieur de la boucle while. Dorénavant mes fonctions sont devenues non blockante. Et non le fait de rendre mes boucles while indépendante comme je l'avais compris.
Voici mon nouvel algoritme (en résumé):
Code :
|
En tout cas merci pour ton coup de main.
Marsh Posté le 18-01-2006 à 18:48:23
Bonjour à tous,
Alors voila j'ai un gros gros soucis. Via mes études, on nous a demandé de développer un "t'chat" en C.
Le principe de fonctionnement est le suivant :
On dispose d'un serveur 1 (SRV1) et d'un serveur 2 (SRV2) qui sont 2 programmes et biensur d'un client.
Dans un premier temps le client saisi un login et mot de passe. Ces données sont envoyé au SRV1 qui le retransmet au SRV2 mais avec en plus l'IP du client.
Le SRV2 vérifi les identifiants du client à partir d'une liste d'utilisateur.
Si c'est OK, le SRV2 envoie une confirmation au SRV1, qui envoie le port du SRV2 au client.
Une fois l'identification réussi, le client se connecte directement au SRV2.
Une fois connecté au SRV2, il peut enfin t'chatter avec ses amis.
En résumé cela donne ca:
Tout fonctionne (connexion, vérification, confirmation), sauf que mon problème se situe dans le SRV2.
En faite, à partir d'une boucle while principale, je dois mettre des "sous" boucles while. Celles-ci étant indépendantes les une des autres grâce à la fonction fcntl. Et enfin, ce qui me pose problème est que je ne sais pas trop comment me servir la cette fonction, comment gérer les boucles whiles.
Voici un bout du code du SRV2 :
Est-ce que de cette facon le while situé au 2, tournera de facon asynchrone ?
Est-ce la façon dont j'ai codé mes éléments feront chaque partie sera asynchrone ?
J'espère que vous ne serez pas trop perdu dans mes explications et que vous pourrez m'orienter vers le bon chemin
Je vous remerci d'avance.
Message édité par AlphaZone le 18-01-2006 à 18:49:18