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

Boost C++ Discussion :

Socket iostream dans Boost::Asio


Sujet :

Boost C++

  1. #1
    Invité
    Invité(e)
    Par défaut Socket iostream dans Boost::Asio
    Bonjour,
    j'apprend actuellement comment utiliser asio et dans le tutoriel de ce site il est indiqué que l'on peut utiliser "iostream" que je trouve plus simple et qui donne le même résultat. Est-ce que "iostream" est plus rapide, plus lent ou équivalent au commande de base dans le début du tutoriel ?

    http://gwenael-dunand.developpez.com...oost/asio/#LVI

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Salut,

    De par mon expérience avec les streams, j'avais commencé à écrire un serveur avec, car effectivement ils sont extrêmement simples. J'ai tout ré-écrit avec des buffers/socket normaux par la suite.

    L'énorme désavantage qu'ils ont c'est qu'ils ne permettent que très difficilement les opérations asynchrones. Ils ne sont pas fait pour ça. Or il faut savoir que Boost.Asio est une librairie spécialisée dans les opérations asynchrones et dès lors il devient plus facile de n'utiliser que ça ! En plus les performances seront d'autant meilleures et tu pourras choisir d'utiliser des threads ou non.

    Si c'est pour un petit truc comme l'exemple dans Boost.asio de serveur "daytime", ça passe. Mais sinon passe directement sur des buffers/socket classique.

    Note que je ne répond pas vraiment à ta question. En fait ce n'est pas une question de rapidité mais plutôt de "répartition des tâches". Si tu veux lire un fichier de 1giga avec des streams, tu vas bloquer tout le monde (ou tu peux le mettre dans un thread séparé tu vas me dire, mais si tu as 1000 clients ?). Honnêtement c'est pas évident à comprendre au début mais une fois que tu as compris tu vois que c'est hyper bien pensé Et que ça résout implicitement pas mal de problèmes classiques que tu aurais sans.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup pour cette réponse. Maintenant je sais comment faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Manipulation d'objets socket avec boost::asio
    Par K-you dans le forum Boost
    Réponses: 9
    Dernier message: 14/04/2010, 14h40
  2. boost::asio::ip::tcp::socket est elle thread safe ?
    Par nemodev dans le forum Boost
    Réponses: 4
    Dernier message: 24/02/2010, 13h08
  3. Réponses: 12
    Dernier message: 22/02/2009, 16h31
  4. Réponses: 11
    Dernier message: 24/09/2008, 14h22
  5. socket ssl & boost::asio
    Par kass28 dans le forum Boost
    Réponses: 0
    Dernier message: 16/10/2007, 09h38

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