Melhor documentação para Boost: asio?

141

A documentação disponível no site do boost é ... limitada.

Pelo que pude ler, o consenso geral é que é simplesmente difícil encontrar uma boa documentação na biblioteca boost :: asio.

É este realmente o caso? Se sim, por quê?

Notas:

  • Eu já encontrei o site da Asio (sem impulso) - e a documentação parece ser idêntica à do site da boost.
  • Eu sei que o Boost :: asio é novo! Estou procurando soluções, não desculpas.

Editar:

mmocny
fonte

Respostas:

54

Primeiro, já uso o Boost.Asio há um bom tempo - e compartilho sua preocupação. Para resolver sua pergunta:

  • Existe realmente uma documentação muito escassa sobre o Boost.Asio, além da introdução e do tutorial. Não sou o autor, mas isso ocorre principalmente porque há muitas coisas a serem documentadas para algo tão baixo quanto uma biblioteca de E / S assíncrona.
  • Os exemplos revelam mais do que os tutoriais. Se você não se importa em gastar um pouco de tempo olhando para os diferentes exemplos, acho que eles devem bastar para você começar. Se você quiser fugir com isso, a documentação de referência deve ajudá-lo bastante.
  • Pergunte na lista de discussão Boost Users e Boost Developers se você está realmente travado ou procurando orientação específica. Tenho certeza de que muitas pessoas estarão dispostas a abordar suas preocupações nas listas de discussão.

Existem esforços (que não fazem parte do Boost.Asio) para expor muitas funcionalidades e possíveis casos de uso alternativos. Na melhor das hipóteses, isso está espalhado pela web em blogs e outras formas de documentação não empacotada.

Uma coisa que não está clara e que realmente precisará de uma estreita coordenação com o autor e os desenvolvedores da biblioteca Boost.Asio seria estender e personalizá-la para uma plataforma específica ou adicionar novas funcionalidades específicas. Porém, isso deve ser melhorado, mas o bom é que o Asio será uma implementação de referência para um relatório técnico da biblioteca padrão (para uma biblioteca de E / S assíncrona na STL) no futuro.

Dean Michael
fonte
2
Obrigado por confirmar suspeitas. Infelizmente, tentei aprender com os exemplos, com sucesso decente, mas limitado. Infelizmente, não posso justificar o uso de uma biblioteca que possui um pequeno conjunto de exemplos como um conjunto de instruções. Posso dar ouvidos ao seu conselho para pedir no ML, mas aguardo ansiosamente um melhor apoio!
mmocny
Eu apenas coloquei dois e dois juntos. Um dos hits top Google (e a maioria dos artigos informativos) eu encontrei enquanto googling impulso asio estava no seu blog :)
mmocny
Sim, mas eu não queria dizer isso em público ainda. ;) Chis Kholhoff (o autor) também tem um blog no qual fala muito sobre o Asio e como ele pode ser usado em circunstâncias não tão comuns.
Dean Michael
@mmocny Eu concordo, no entanto, a qualidade da implementação do ASIO é melhor do que a maioria das outras bibliotecas de eventos gratuitas, especialmente no Windows.
unixman83
63

Uma boa documentação sobre o boost, incluindo um capítulo sobre o asio, pode ser encontrada em um livro (gratuito) do boost em http://en.highscore.de/cpp/boost/index.html . O capítulo sobre asio fornece uma visão geral e detalha como desenvolver suas próprias extensões asio personalizadas. Esforço realmente fantástico de Boris Schäling!

Ralf
fonte
41

Escrevi dois pequenos artigos que poderiam ser usados ​​como introdução ao boost.asio. Eles estão disponíveis no meu site

Alex Ott
fonte
4
Encontrei o site de Alex Ott de forma independente enquanto pesquisava se deveria ou não usar o asio ou o ás no nosso projeto atual. Seu site respondeu muitas das minhas perguntas.
Deft_code 19/10/09
Rasgue o site desse cara. É por isso que você posta respostas aqui em vez de vincular a sites mortos até o final dos tempos.
maxywb
30

NOTA: Entrei em contato com gamedev.net para informá-los sobre os problemas de formatação. Infelizmente, no momento da redação deste comentário, é mais difícil recomendar esse recurso devido a algumas alterações no site que ocultam / excluem as instruções #include + um recurso de arquivo .zip ausente.

Um tutorial iniciante relativamente novo e muito bom para o Boost.Asio (que também apresenta como usá-lo efetivamente com bind, shared_ptr e threads) pode ser encontrado aqui:

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

Nota: Se você estiver usando os recursos do c ++ 0x, muitos dos usos simples de bind para criar um functor podem ser substituídos por lambdas, e shared_ptr / bind também estará disponível na versão mais recente do visual studio (ou gcc, que também inclui threads). .)

Quando eu estava procurando por documentação ou tutorial, essa pergunta continuava aparecendo no topo dos resultados da pesquisa, por isso é importante mantê-la atualizada à medida que novos tutoriais aparecem.

M2tM
fonte
Ótimo link! Definitivamente um bom guia para começar com asio
Ralf
1
Obrigado por postar este link. Infelizmente, senti que, assim que começava a ficar bom, o autor solta a bola, despejando você diretamente na biblioteca que ele criou e me perde completamente. Ele passou de explicar em detalhes como bindfunciona para deixar o leitor adivinhar o que Hiveestá em sua biblioteca.
Rotsiser Mho 18/12/12
Eles têm a interface + do hive defenition diretamente no tutorial. Eu acho que é útil e faz sentido porque eles introduzi-lo na página 10 do 11.
M2TM
Este artigo menciona um arquivo zip com exemplos, mas não o vejo. Além disso, os #includes são recortados no código de exemplo?
Jake Gaston
Ah, infelizmente, parece que o artigo foi corroído nas areias do tempo com uma atualização do código de renderização do gamedev.net, que parece não lidar bem com colchetes angulares e não posso garantir a validade dessa resposta neste momento . Embora ainda possa ser uma referência correta, sua formatação claramente não foi migrada corretamente. @JakeGaston
M2tM
8

A documentação do asio, a disponível no impulso, é minimalista, mas muito precisa, cada palavra é significativa. Dito isto, eu aprendi asio (e continuo aprendendo) principalmente com o SO.

Na minha opinião, a resposta para ' Confuso quando o método de execução boost :: asio :: io_service bloqueia / desbloqueia ' é o primeiro passo, leia uma leitura novamente até que você realmente entenda, a segunda resposta também é útil.

Então, inscrevi o RSS na mais nova pergunta de tag boost-asio da SO e a esses dois respondedores:

Tanner Sansburry , autor da resposta acima, suas respostas são sempre muito precisas, abrangentes, com referências e até belos esquemas . Feed RSS
Sehe (desculpe Sehe, apenas o segundo). feed RSS

Com todo esse material, em breve você será um especialista em asio!

Jean Davy
fonte
0

Eu tropecei no seguinte pdf: http://boost.cowic.de/rc/pdf/asio_doc.pdf

Kisalay
fonte
17
Mas espere ... é a mesma coisa, apenas em pdf . Quem votou positivamente nisso?
31911 Oleh Prypin
1
@BlaXpirit O mesmo que quê?
expert
0

Um pouco atrasado para a festa, mas há um livro chamado "Boost Asio Network Programming" (publicação Packt).

Comprei uma cópia disso, li no fim de semana e depois escrevi um servidor completo em C ++ sem muito problema.

Isenção de responsabilidade: não tenho nada a ver com o livro

Dave F
fonte
Ow. Eu peguei três livros sobre o Asio da Packt e não os achei confiáveis. Na medida em que eu reconheço quando as pessoas
leem