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

  FORUM HardWare.fr
  Programmation
  C

  [C]Utiliser des fonctions de saisi (stdin) non bloquantent, possible?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C]Utiliser des fonctions de saisi (stdin) non bloquantent, possible?

n°1462473
big_dadi_f​at
Posté le 22-10-2006 à 16:05:44  profilanswer
 

salut  :hello:  
 
j'aimerai savoir s'il existe en C des fonction de saisi non bloquant , pour pouvoir résoudre un probléme avec un programme client serveur qui utilise les sockets .
 
Merci.
 

mood
Publicité
Posté le 22-10-2006 à 16:05:44  profilanswer
 

n°1462501
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-10-2006 à 17:37:36  profilanswer
 

c'est quoi ton probleme avec les sockets ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1462505
Ridjidji
Posté le 22-10-2006 à 17:54:54  profilanswer
 

Il fait une appli utilisant les sockets et il voudrait utiliser les fonctions qui ne "bloquent" pas le prog pour pouvoir faire en paralelle une boucle pour afficher les messages reçus. ( enfin... je crois :) )

n°1462515
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-10-2006 à 18:19:23  profilanswer
 

big_dadi_fat a écrit :

j'aimerai savoir s'il existe en C des fonction de saisi non bloquant , pour pouvoir résoudre un probléme avec un programme client serveur qui utilise les sockets .


Utilise les threads. On a jamais besoin de fonctions non blocantes. Au contraire...
 
Maintenant, tu comprends pourquoi les I/O sont blocants...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1462543
Ridjidji
Posté le 22-10-2006 à 19:05:53  profilanswer
 

Et si on fait une appli console, on fait comment ? ( un truc truc un peu comme telnet... )

n°1462555
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-10-2006 à 19:26:00  profilanswer
 

Ridjidji a écrit :

Et si on fait une appli console, on fait comment ? ( un truc truc un peu comme telnet... )

Les threads, ça fonctionne dans les modes console ou GUI, peu importe...
 
http://mapage.noos.fr/emdel/pthreads.htm


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1462566
Ridjidji
Posté le 22-10-2006 à 19:46:23  profilanswer
 

Je ne dis pas que les threads ne marchent pas en console... Disons juste que j'aurais besoin de connaître une fonction d'entrée non blocante  ;)

n°1462575
Emmanuel D​elahaye
C is a sharp tool
Posté le 22-10-2006 à 20:04:48  profilanswer
 

Ridjidji a écrit :

Je ne dis pas que les threads ne marchent pas en console... Disons juste que j'aurais besoin de connaître une fonction d'entrée non blocante  ;)


T'es lourd, je te dis qu'il n'y en a pas sur stdin en C standard.
 
Certains systèmes permettent néanmoins un config non blocante (rarement utile, programmation de chacal...) Quel est ton système ?


Message édité par Emmanuel Delahaye le 22-10-2006 à 20:07:31

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1462956
big_dadi_f​at
Posté le 23-10-2006 à 11:55:05  profilanswer
 

Citation :

c'est quoi ton probleme avec les sockets ?


Ridjidji a écrit :

Il fait une appli utilisant les sockets et il voudrait utiliser les fonctions qui ne "bloquent" pas le prog pour pouvoir faire en paralelle une boucle pour afficher les messages reçus. ( enfin... je crois :) )


oui oui, c'est exactement ça.
en fait je veux j'ai fet en consol une aplication client/serveur qui utilise des socket non bloquant, pour permetre au clien (par exemple) d'envoyer des message au serveur sans ce préocupé de la reponce du serveur c'est envoyer 1, 2, 3 , 4, ou plusieur message de suite.   (est c'est la méme chose pour le serveur).
 
Mais quand le serveur reçoi la les message du client, il ne les affiche pas tout de suit car il attend lui aussi un saisi sur stdin (donc il ne lé affiche qu'apré avoir fait la saisi), et c'est idem quant c'est le serveur qui envoi au client...
 
Donc je voulez savoir s'il étai possible d'utilisé un fonction de saisi non bloquant pour: s'il n y pas de saisi sur le serveur il affiche les message reçu par le cient systematiquement...  voilà.
 
Je suis sous windows.
 

Citation :

Les threads, ça fonctionne ....
http://mapage.noos.fr/emdel/pthreads.htm


c'est les méme fonctions, sous windows ?

Message cité 1 fois
Message édité par big_dadi_fat le 23-10-2006 à 12:16:26
n°1462964
_darkalt3_
Proctopathe
Posté le 23-10-2006 à 12:06:24  profilanswer
 

big_dadi_fat a écrit :


Citation :

Les threads, ça fonctionne ....
http://mapage.noos.fr/emdel/pthreads.htm


c'est les méme fonctions, sous windows ?


 
Celles ci sont standards.


---------------
Töp of the plöp
mood
Publicité
Posté le 23-10-2006 à 12:06:24  profilanswer
 

n°1462971
big_dadi_f​at
Posté le 23-10-2006 à 12:15:47  profilanswer
 

_darkalt3_ a écrit :

Celles ci sont standards.


ah ok, merci.

n°1462997
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-10-2006 à 13:10:47  profilanswer
 

_darkalt3_ a écrit :

Celles ci sont standards.


Enfin, standard POSIX.1. Mais oui, on les trouve sous Windows et unixoides...
 (sur le site de Red Hat, si je me souviens bien...)


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1462998
lorill
Posté le 23-10-2006 à 13:17:06  profilanswer
 

et select, ca suffirait pas dans ce cas ?

n°1463008
big_dadi_f​at
Posté le 23-10-2006 à 13:49:55  profilanswer
 

lorill a écrit :

et select, ca suffirait pas dans ce cas ?


bah montre un peut comment on peut l'utilisé pour résoudre le prob, j'ai déja essayer mais je n'arrive pas...

n°1463311
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-10-2006 à 17:44:06  profilanswer
 

big_dadi_fat a écrit :

bah montre un peut comment on peut l'utilisé pour résoudre le prob, j'ai déja essayer mais je n'arrive pas...


Sous Windows, non, pas pour stdin.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1463316
FlorentG
Posté le 23-10-2006 à 17:48:57  profilanswer
 

Moi, à l'iut, j'avais un super truc, pour saisir des caractère de manière non-bloquante [:dawak] Fallait faire :

char c;
while(!kbhit())) {
  c = getch();
}


Ou un truc comme ça [:dawak] Et dans ce cas, getch prenait dans le buffer clavier si c'était dispo. Je sais pas pourquoi, mais ça m'a pas l'air standard [:johneh]

n°1463323
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-10-2006 à 17:53:10  profilanswer
 

FlorentG a écrit :

Moi, à l'iut, j'avais un super truc, pour saisir des caractère de manière non-bloquante [:dawak] Fallait faire :

char c;
while(!kbhit())) {
  c = getch();
}


Ou un truc comme ça [:dawak] Et dans ce cas, getch prenait dans le buffer clavier si c'était dispo. Je sais pas pourquoi, mais ça m'a pas l'air standard [:johneh]


C'est non seulement non standard (conio est une invention de Borland), mais en plus complètement antisocial, car ça prend 100% du CPU. Seules les interruptions fonctionnent...
 
A bannir dans une application sérieuse.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1463329
FlorentG
Posté le 23-10-2006 à 17:57:43  profilanswer
 

Emmanuel Delahaye a écrit :

C'est non seulement non standard (conio est une invention de Borland), mais en plus complètement antisocial, car ça prend 100% du CPU. Seules les interruptions fonctionnent...
 
A bannir dans une application sérieuse.


Hahaha ouais, la réception des données se faisait justement par interruption... C'était pour un projet de fin d'année, j'était jeune, insouciant...


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

  [C]Utiliser des fonctions de saisi (stdin) non bloquantent, possible?

 

Sujets relatifs
[VBA]Utiliser une lettre dans une boucle For[VBA] utiliser la valeur affichée d'une cellule
Comment utiliser du C++/CLI dans du VB.Net ?fonctions a nombres de parametres variables
Est-il possible de supprimer un popup ?[VBS/WSH]est ce possible de recuperer la cible d'un raccourci ?
est ce possible en perl ?Possible ou pas avec htaccess ?
Utiliser xml_set_element_handler() avec des méthodes d'une classeaide OpenOffice.org utiliser la fonction "RECHERCHEV"
Plus de sujets relatifs à : [C]Utiliser des fonctions de saisi (stdin) non bloquantent, possible?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR