Pregunta

La documentación disponible en el impulsar el sitio web es ... limitado.

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

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

Notas:

  • Ya he encontrado el sitio web de Asio (y no es un impulso) y la documentación parece ser idéntica a eso en el sitio web de impulso.
  • Sé que Boost :: asio es nuevo! Estoy buscando soluciones, no excusas.

Editar:

  • Existe una propuesta para agregar una red biblioteca a biblioteca estándar para TR2 escrita por el autor de Boost: asio (Christopher Kohlhoff). Si bien no es documentación para boost: asio, sí la usa como base para la propuesta 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.
¿Fue útil?

Solución

Primero, he estado usando Boost.Asio desde hace bastante tiempo, y comparto tu 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 que documentar para algo tan bajo como una biblioteca de E / S asíncrona.
  • Los ejemplos dan más lejos que 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 y Boost Developers si está realmente atascado o en busca de 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 son parte de Boost.Asio) para exponer mucha funcionalidad y posibles casos de uso alternativos. En el mejor de los casos, esto se encuentra diseminado 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 Boost.Asio sería extenderla y personalizarla para una plataforma específica o agregar una funcionalidad nueva específica. 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 de E / S asíncrona en el STL) en el futuro.

Otros consejos

Puede encontrar una buena documentación sobre boost incluyendo un capítulo sobre asio en un libro de boost (gratuito) en http://en.highscore.de/cpp/boost/index.html . El capítulo sobre asio proporciona una descripción general y luego explica cómo desarrollar sus propias extensiones de asio personalizadas. ¡Un esfuerzo realmente fantástico de Boris Sch & # 228; ling!

Escribí dos pequeños artículos que podrían usarse como introducción a boost.asio. Están disponibles en mi sitio

NOTA: Me he contactado con gamedev.net para informarles sobre los problemas de formato. Desafortunadamente, al momento de escribir este comentario, este recurso es más difícil de recomendar debido a algunos cambios en su sitio web que ocultan / eliminan las declaraciones #include + un recurso de archivo .zip faltante.

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á utilizando las funciones de c ++ 0x, muchos de los simples usos de bind para crear un functor pueden reemplazarse con 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 aparezcan nuevos tutoriales.

También tenía bastante curiosidad sobre eso, pero esta página me dio un poco de ventaja. Está en francés, pero puedes usar el traductor de Google, que es bastante legible (yo mismo tuve que seguir este camino).

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

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

En mi opinión, la responde a ' Confundida cuando boost :: asio :: io_service ejecuta los bloques de métodos / unblocks 'es el primer paso, lea una lectura nuevamente hasta que realmente lo entienda, segunda respuesta es También es útil.

Luego me suscribí a RSS a la pregunta más reciente de la etiqueta SO boost-asio y a estas dos respondedores:

Tanner Sansburry , el autor de la respuesta anterior, sus respuestas son siempre muy precisas, completas, con referencias, incluso hermoso esquema s. fuente RSS
Sehe (perdón Sehe, solo 2º). fuente RSS

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

Un poco tarde para la fiesta, pero hay un libro llamado " Boost Asio Network Programming " (Packt publishing).

Compré una copia de esto, la leí durante el fin de semana y luego escribí una versión completa en el servidor en C ++ sin muchos problemas.

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top