IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau C Discussion :

des "evenements" en mode console ?


Sujet :

Réseau C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut des "evenements" en mode console ?
    Voila je me pose actuellement trois questions essencielles sur la vie (enfin sutout sur la possibilité de continuer mon projet actuel) :
    -y a-t-il un moyen de gerer les evenements en c en mode console (ou de "simuler" une gestion de evenements) ?
    -y a-t-il un moyen de faire faire plusieurs choses a la fois a mon programme ?
    -Comment on fait ?
    (peut-etre que les deux questoins ont la meme reponse car finalement si mon programme peut faire plusieurs choses a la fois il peut par exemple se continuer et attendre que l'utilisateur appuie sur une touche au quel cas il s'arrete, pose une question a l'utilisateur etc., bref gerer les evennements)

    Je ne m'attend pas a un "utilise la fonction ......()" car je pense que se sera plus compliqué, j'ai entendu parler de "thread" et je pense que c'est ce qu'il me faut.


    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Koral
    Voila je me pose actuellement trois questions essencielles sur la vie (enfin sutout sur la possibilité de continuer mon projet actuel) :
    -y a-t-il un moyen de gerer les evenements en c en mode console (ou de "simuler" une gestion de evenements) ?
    Quel système ?

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par Koral
    Voila je me pose actuellement trois questions essencielles sur la vie (enfin sutout sur la possibilité de continuer mon projet actuel) :
    -y a-t-il un moyen de gerer les evenements en c en mode console (ou de "simuler" une gestion de evenements) ?
    Cela depend de ce que tu appelles evenement. Mais le principe est globalement toujours le meme: je regarde s'il se passe quelque-chose, et si cette chose arrive, alors j'appelle la fonction qui convient (callback de la fonction de monitoring, via un pointeur de fonction).
    Pour le mode console, des 'evenements' de type clic de souris ou fermeture d'une fenetre n'ont evidemment aucun sens.

    -y a-t-il un moyen de faire faire plusieurs choses a la fois a mon programme ?
    Cela depend de ce que tu nommes 'a la fois'. Sur une machine a un seul processeur (mono-coeur), c'est impossible. Mais comme un ordinateur est tres rapide, on peut avoir une impression de simultaneite (via des fonctions comme select(), par exemple).
    Sinon, il y a le multi-thread. Mais c'est mechant (probleme de synchronisation, deadlocks, debugage qui depend de l'etat du systeme a l'instant t). Le multi-thread est en general reserve a des situations ou la simultaneite existe vraiment (machines multi-processeurs), meme s'il y a quelques exceptions (serveurs de base de donnees importantes, notamment).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Mais comme un ordinateur est tres rapide, on peut avoir une impression de simultaneite (via des fonctions comme select(), par exemple).
    Certes, mais ce que je voulais dire c'est que prenons par exemple mirc (programme graphique, certes), pendant qu'on l'tuilise il repond à et envoi tout un tas de "ping" et peu telecharger un fichier sur un XDCC par exemple en meme temps que nous faire participer a une conversation, c'est cela que j'appelle 'a la fois', meme si en realité cela se passe successivement au niveau du processeur.

    PS : je suis sous windows mais je voudrais avoir un programme portable au final (c'est deja mal partit parce qu'il utilise winsock, je ferais des #ifdef)

    rePS : Comment fonctionne cette fonction 'select()'

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Koral
    PS : je suis sous windows mais je voudrais avoir un programme portable au final (c'est deja mal partit parce qu'il utilise winsock, je ferais des #ifdef)
    • winsock2 est très portable...

    http://emmanuel-delahaye.developpez.com/reseaux.htm

    • les pthreads aussi...

    http://emmanuel-delahaye.developpez.com/pthreads.htm

    • select(), par contre, difficile avec Windows (OK pour le réseau, mais curieusement, pas pour le clavier...)
    rePS : Comment fonctionne cette fonction 'select()'
    C'est assez compliqué... en gros, on défini des évènements (flux, sockets...), on appele la fonction, le processus se suspend jusqu'au déclenchent d'un de ces évènements... puis, on traite l'évènement. Détails dans le manuel...

    http://man.developpez.com/man2/select.2.php

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    winsock2 est très portable...
    Oui je sais, il y a justes quelques changements a faire a l'initialisation.
    Citation Envoyé par Emmanuel Delahaye
    select(), par contre, difficile avec Windows (OK pour le réseau, mais curieusement, pas pour le clavier...)
    Je vais aussi en avoir besoin pour le reseau donc je l'utiliserais dans ce cas pour tous les systemes et je ne l'utiliserais que pour les unix pour le clavier, j'ai trouvé ca dans la FAQ C de developpez : http://c.developpez.com/faq/c/?page=...ecoute_clavier
    Cela correspond a un evenement clavier sous windows (apparemment), j'arriverais donc a me debrouiller (j'espere).

Discussions similaires

  1. Des couleurs en mode console
    Par davcha dans le forum MFC
    Réponses: 3
    Dernier message: 08/05/2004, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo