C++ Boost Asio De Chat Simple Tutoriel

J'ai lu Boost Asio's des Tutoriels (site Officiel). Mais je les ai trouvé une douleur dans le cou! Est-Il un simple tutoriel sur asio?! Je veux dire, Un simple client-serveur de chat. PAS DE FILS!!
Merci!!!!

  • Je n'ai jamais utilisé de boost, mais n'a pas l'Asio stand pour un système io? N'est-ce pas threading "le point"?
  • les deux typique des régimes sont "asynchronous I/O" vs "fileté e/S synchrones". Souvent le point de asynchronous I/O est d'éviter d'utiliser un thread par connexion, où chaque thread utilise synchrone I/O. Vous pouvez bien sûr utiliser des threads et des e/S asynchrones ensemble, si vous voulez, mais cela complique encore plus les choses (qui, j'imagine, est-ce que l'OP est en essayant d'éviter).
  • un coup d'œil, le coup de pouce asio bibliothèque est un peu complexe et opaque, mais aussi loin que je pouvais voir, le coup de pouce asio tutoriels ne pas utiliser de fils. Est-ce incorrect?
  • Voici quelques Asio diapositives à partir de BoostCon 2010: débuter avec Asio
  • Le boost client de chat exemple s'exécute ses io_service de routine dans un thread.
  • d'autres - je pense qu'il y a une certaine confusion ici sur l'ensemble des e/s asynchrone vs filetée synch... Ils sont tous les deux la même chose. Pas d'appel peut être asynchrone sans la mettre dans son propre thread, sauf en cas d'appel fork() directement à l'avant de la lire/écrire/accepter etc. Si votre référence à la non-blocage de l'un n'a rien à voir avec les autres. appels non bloquants ne sont pas asynchrone à moins de le mettre dans leur propre thread, et en bloquant les appels sont également asynchrone si fileté. BTW asio appels sont tous de blocage, sauf si vous définissez socket.le blocage comme faux, cela inclut async_read_some (), etc.
  • Pour ce que sa vaut le coup, non-blocage sont meilleures lorsqu'elles sont utilisées de façon synchrone, car ils peuvent quitter entraînant souvent répété plusieurs lectures/écritures par message. Ce n'est pas trop mauvais si votre utilisation d'un pool de threads, mais fera en sorte que plusieurs nouveaux fils est engendré du contraire. Dans boost asio cela signifie que io_service dans plusieurs threads qu'il n'a pas encore de pools de threads pour boost::thread

InformationsquelleAutor Kia.celever | 2011-10-28