Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2789 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  cin asynchrone ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

cin asynchrone ?

n°703706
blackgodde​ss
vive le troll !
Posté le 20-04-2004 à 12:46:34  profilanswer
 

Bonjour,
 
j'essaye de programmer un pseudo-telnet, et dans ce cadre, je dois gérer simultanement les entrées de l'utilisateur, et la connexion au serveur.
Mon problème se pose pour les entrées utilisateurs : en effet, les méthode istream que je connais sont bloquantes, et cela va donc bloquer la gestion des sockets (si je suis en monothread) ou l'eventuelle terminaison du programme suite a une erreur de sockets (si je suis en multithread).
Existe-t-il une méthode de cin permettant de laisser l'utilisateur taper du texte, en tache de fond, puis de venir régulièrement voir le contenu du buffer ?
J'ai vu qu'il était possible de rediriger le buffer avec rdbuf, je me demande si ce n'est pas la solution.
Quelqu'un a une idée ?


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 20-04-2004 à 12:46:34  profilanswer
 

n°703711
jagstang
Pa Capona ಠ_ಠ
Posté le 20-04-2004 à 12:54:03  profilanswer
 

en tache de fond ? la console est monotache
 
en multithread tu devrais y arriver je pense

n°703712
Taz
bisounours-codeur
Posté le 20-04-2004 à 12:54:29  profilanswer
 

tourne ne toi vers ton système. y a des tas de bibliothèques C++ au dessus du C pour faire le travail. Sinon les threads, c'est vraiment mieux quand meme. cela dit je ne vois vraiment le besoin, un shell, c'est juste
 
lire l'entrée
executer l'action
afficher le résultat et on boucle.

n°703715
blackgodde​ss
vive le troll !
Posté le 20-04-2004 à 12:58:48  profilanswer
 

mon problème est la en fait :
 
thread1         thread2
                connexion
lis l'entrée    erreur de socket
...             veut fermer l'appli
...
 
a moins de killer le thread a la bourrin, je ne vois pas trop comment m'en sortir ... mais cette methode est sale.


---------------
-( BlackGoddess )-
n°703734
Taz
bisounours-codeur
Posté le 20-04-2004 à 13:18:09  profilanswer
 

tuer quel thread ?

n°703741
SoWhatIn22
Posté le 20-04-2004 à 13:23:43  profilanswer
 

une solution, sous *nix, est d'utiliser l'entrée standard comme une socket, ie en ajoutant le descripteur de fichier dans la liste utilisée pour faire le select. Par contre, je ne sais pas si cela fonctionne quand on utilise l'abstraction des stream C++ pour lire sur le flux (jamais essayé).
 
+a
 

n°703742
blackgodde​ss
vive le troll !
Posté le 20-04-2004 à 13:23:52  profilanswer
 

celui qui lit les entrées, puisqu'il restera bloqué jusqu'à ce que l'utilisateur saisisse qqchose.


---------------
-( BlackGoddess )-
n°703745
blackgodde​ss
vive le troll !
Posté le 20-04-2004 à 13:26:28  profilanswer
 

SoWhatIn22 > bonne idée, je vais essayer. J'aimerais produire du code portable win/*nix, je vois bien que ca va être dur.


---------------
-( BlackGoddess )-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  cin asynchrone ?

 

Sujets relatifs
[Qt] programmation visuelle asynchrone[BC++ v3.1] Comment gérer communication asynchrone par COM1 sous DOS?
[VB6] Faire du FTP asynchrone..... 
Plus de sujets relatifs à : cin asynchrone ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)