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

Threads & Processus C++ Discussion :

Boost : thread et sockets


Sujet :

Threads & Processus C++

  1. #21
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2010
    Messages : 86
    Par défaut
    Humm ok. Du coup je dois utiliser les pointeurs intelligents ?
    Comment le mettre en œuvre dans mon cas ?
    Merci.

  2. #22
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Citation Envoyé par Alpha573 Voir le message
    Humm ok. Du coup je dois utiliser les pointeurs intelligents ?
    Comment le mettre en œuvre dans mon cas ?
    Merci.
    Dans ton cas, c'est nécessaire, effectivement ; ça permettra de garder le code simple.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  3. #23
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2010
    Messages : 86
    Par défaut
    Ok.
    Donc je dois faire un pointeur sur ma socket ?
    J'ai vraiment aucune idée de comment mettre ça en place...

  4. #24
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    class calculFrey
    {
    private:
      boost::shared_ptr<tcp::socket> sock;
     
    public:
      calculFrey(const boost::shared_ptr<tcp::socket>& s)
      : sock(s)
      { }
     
      void operator()()
      {
        cout<<"Passage dans le functore pour Frey"<<endl;
        boost::asio::write(*sock, boost::asio::buffer("hello !"));
      }
     };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    boost::shared_ptr<tcp::socket> socket(new tcp::socket(io_service));
    acceptor.accept(*socket);
    ..
    thread t(calculFrey(socket));
    Mais vu que je n'ai pas utilisé boost::shared_ptr depuis la nuit des temps, je ne sais pas si operator*() renvoie une référence sur l'objet contenu (si quelqu'un peut confirmer ?)

    En attendant, c'est à ça que va ressembler le code.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  5. #25
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Ouaip une référence.

  6. #26
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2010
    Messages : 86
    Par défaut
    Je suis en train de tester tout ça.
    Le compilo bug pas tout va bien mais...
    La ligne qui doit lancer le thread est ignorée, j'ai passé le code au débugger et il passe à l'instruction suivante, il n'exécute pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    thread t(calculFrey(socket));
    Et je comprends plus trop là...
    J'ai placé des instructions avant ET après cette ligne et elles sont exécutées correctement. Ça peut venir d'où ?
    Merci.

  7. #27
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Août 2010
    Messages : 86
    Par défaut
    Problème résolu, je dois instancier le foncteur avant...
    Merci à tous de m'avoir aidé à régler mon problème

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Boost : threads et sockets
    Par Elenaher dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 28/12/2008, 13h24
  2. [Débutant] boost::thread non-lvalue
    Par Tymk dans le forum Boost
    Réponses: 16
    Dernier message: 18/11/2006, 14h23
  3. Questions de perfomance avec boost::thread
    Par Rafy dans le forum Boost
    Réponses: 36
    Dernier message: 05/10/2006, 15h21
  4. boost::thread et OpenGL
    Par Kurisu dans le forum Boost
    Réponses: 12
    Dernier message: 19/09/2006, 13h23

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