La mejor documentación para Boost: asio?

La documentación disponible en el sitio web de impulso es … limitada.

De lo que he podido leer, el consenso general es que simplemente es difícil encontrar una buena documentación sobre la biblioteca boost :: asio.

¿Es este realmente el caso? Si es así, ¿por qué?

Notas:

  • Ya encontré el sitio web Asio (sin refuerzo), y la documentación parece ser idéntica a la del sitio web de impulso.
  • Sé que Boost :: asio es nuevo. Estoy buscando soluciones, no excusas.

Editar:

  • Existe una propuesta para agregar una biblioteca de red a la biblioteca estándar para TR2 escrita por el autor de Boost: asio (Christopher Kohlhoff). Si bien no es la documentación de boost: asio, sí la usa como base para la propuesta de TR2. Dado que el autor hizo un mayor esfuerzo en este documento, he encontrado que es algo útil, si no como referencia, al menos como una descripción general.

Primero, he estado usando Boost.Asio desde hace un tiempo, y comparto su preocupación. Para responder a su pregunta:

  • Realmente hay muy poca documentación sobre Boost.Asio aparte de la introducción y el tutorial. No soy el autor, pero esto se debe principalmente a que hay demasiadas cosas para documentar algo tan bajo como una biblioteca de I / O asíncrona.
  • Los ejemplos dan más de lo que hacen los tutoriales. Si no le importa pasar un poco de tiempo mirando los diferentes ejemplos, creo que deberían ser suficientes para comenzar. Si desea huir con él, entonces la documentación de referencia debería ayudarlo mucho.
  • Pregunte en la lista de correo de Boost Users and Boost Developers si realmente está atrapado o buscando orientación específica. Estoy bastante seguro de que muchas personas estarán dispuestas a abordar sus inquietudes en las listas de correo.

Hay esfuerzos (que no forman parte de Boost.Asio) para exponer una gran parte de la funcionalidad y posibles casos de uso alternativos. Esto, en el mejor de los casos, está disperso por la web en blogs y otras formas de documentación no empaquetada.

Una cosa que no está clara y que realmente necesitará una estrecha coordinación con el autor y los desarrolladores de la biblioteca de Boost.Asio sería extenderla y personalizarla para una plataforma específica o agregar nuevas funcionalidades específicas. Sin embargo, esto debería mejorarse, pero lo bueno es que parece que Asio será una implementación de referencia para un informe técnico de biblioteca estándar (para una biblioteca IO asíncrona en el STL) en el futuro.

Se puede encontrar una buena documentación sobre el impulso que incluye un capítulo sobre asio en un libro de impulso (gratuito) en http://en.highscore.de/cpp/boost/index.html . El capítulo sobre asio ofrece una descripción general y luego llega a cómo desarrollar sus propias extensiones de asio personalizadas. ¡Un esfuerzo realmente fantástico de Boris Schäling!

Escribí dos pequeños artículos que podrían usarse como presentaciones para boost.asio. Están disponibles desde mi sitio

Un tutorial para principiantes relativamente nuevo y muy bueno para Boost.Asio (que también presenta cómo usarlo de manera efectiva con bind, shared_ptr y threads) se puede encontrar aquí:

http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=1

Nota: Si está usando las funciones de c ++ 0x, muchos de los usos simples de bind para crear un functor pueden reemplazarse por lambdas, y shared_ptr / bind también están disponibles en la última versión de visual studio (o gcc, que también incluye hilos) .)

Cuando estaba buscando documentación o un tutorial, esta pregunta seguía apareciendo en la parte superior de los resultados de búsqueda, por lo que es importante mantenerla actualizada a medida que aparecen nuevos tutoriales.

Llegué a 3 videos que encontré útiles una vez que superaste la descripción oficial del impulso asio:

  • Pensando de forma asíncrona: diseñando aplicaciones con asio
  • ¿Estás listo para ipv6
  • Por qué c-0x es el lenguaje más asombroso para la progtwigción en red

Y

  • Pensando en diapositivas asincrónicas
  • ¿Estás listo para las diapositivas de ipv6?
  • Por qué c-0x es el lenguaje más sorprendente para diapositivas de progtwigción en red

Estaba bastante curioso acerca de eso también, pero esta página me dio un poco de ventaja. Está en francés, pero podrías usar google translate, que es bastante legible (tuve que seguir este camino por mi cuenta).

http://gwenael-dunand.developpez.com/tutoriels/cpp/boost/asio/

La documentación del asio, la disponible en boost, es minimalista pero muy precisa, cada palabra es significativa. Dicho esto, aprendí asio (y sigo aprendiendo) principalmente de SO.

En mi opinión, la respuesta a ‘ Confundido cuando boost :: asio :: io_service run method blocks / unblocks ‘ es el primer paso, lea una lectura nuevamente hasta que realmente lo entienda, la segunda respuesta también es útil.

Luego, tengo un RSS suscrito a la última pregunta sobre la etiqueta SO boost-asio y a estos dos contestadores:

Tanner Sansburry , el autor de la respuesta anterior, sus respuestas son siempre muy precisas, exhaustivas, con referencias, incluso con hermosos esquemas . RSS Feed
Sehe (lo siento Sehe, solo 2do). RSS Feed

¡Con todo ese material, pronto serás un experto en asio!

Me encontré con el siguiente pdf: http://boost.cowic.de/rc/pdf/asio_doc.pdf

Un poco tarde para la fiesta, pero hay un libro llamado “Boost Asio Network Programming” (publicación de Packt).

Compré una copia de esto, lo leí durante el fin de semana y luego escribí un servidor completo en C ++ sin mucho problema.

Descargo de responsabilidad: no tengo nada que ver con el libro