-
algo d'un chat
salut. je suis entrain de coder un chat pc <-> pc en C
ce que je n'ai pas su faire c'est le fait que les utilisateurs peuvent envoyer des messages sans etre obligés de suivre la règre : quand on evois un msg, on attend la reponse pour pouvoir en envoyer un autre.
je voudrais savoir comment peut-on faire pour contourner ca
-
Je ne vois pas trop le soucis. Tu peux envoyer des données à tout moment sur ton socket (en ayant défini au préalable un protocole réseau)
-
En utilisant les threads. Un thread envoi des messages et un autre les reçoit.
-
comme a dit Millie, a priori aucun probleme.. tu peux ecrire ce aue tu veux... c'est la lecture qui bloque.. Sauf si l'action ou le message devant etre ecrit depend de la reponse....
-
Il n'est pas obligatoire d'utiliser des threads. La plupart des API réseaux permettent de les manipuler plus ou moins simplement sous forme d'ensemble de Socket et qui permet des lectures non bloquantes.
Par exemple les fd_set et compagnie en C, les Selector et Channel en java que l'on peut coupler avec les descripteur de fichier d'entrée standard en général.
Il faut savoir que les threads sont sources de beaucoup d'erreur et certains langages n'ont pas forcement une gestion très pratique de ceux ci. D'autant plus que les échanges réseaux sont limités et peu gourmand, il est tout à fait envisageable de choisir une solution sans thread.