Domanda

La documentazione disponibile sul sito web boost è ... limitato.

Da quanto ho potuto leggere, il consenso generale è che è semplicemente difficile trovare una buona documentazione sulla libreria boost :: asio.

È davvero così? In tal caso, perché?

Note:

  • Ho già trovato il (non boost) sito web Asio - e la documentazione sembra essere identica a quello sul sito Web boost.
  • So che Boost :: asio è nuovo! Sto cercando soluzioni non scuse.

Modifica:

  • Esiste una proposta di aggiungere una rete libreria a libreria standard per TR2 scritta dall'autore di Boost: asio (Christopher Kohlhoff). Sebbene non sia una documentazione per boost: asio, lo usa come base per la proposta TR2. Dato che l'autore ha fatto più sforzi in questo documento, l'ho trovato in qualche modo utile, se non come riferimento, almeno come una panoramica.
È stato utile?

Soluzione

In primo luogo, sto usando Boost.Asio già da un po 'di tempo - e condivido la tua preoccupazione. Per rispondere alla tua domanda:

  • Esiste davvero una documentazione molto scarsa su Boost.Asio a parte l'introduzione e il tutorial. Non sono l'autore, ma questo è principalmente perché ci sono troppe cose da documentare per qualcosa di basso livello come una IO Library asincrona.
  • Gli esempi danno più di quanto non facciano i tutorial. Se non ti dispiace passare un po 'di tempo a guardare i diversi esempi, penso che dovrebbero bastare per iniziare. Se vuoi scappare, la documentazione di riferimento dovrebbe aiutarti molto.
  • Chiedi in giro nella mailing list Boost Users e Boost Developers se sei davvero bloccato o stai cercando una guida specifica. Sono abbastanza sicuro che molte persone saranno disposte a rispondere alle tue preoccupazioni nelle mailing list.

Ci sono sforzi (non parte di Boost.Asio) per esporre molte funzionalità e possibili casi d'uso alternativi. Questo nella migliore delle ipotesi è sparso sul Web nei blog e in altre forme di documentazione non impacchettata.

Una cosa che non è chiara e che avrà davvero bisogno di uno stretto coordinamento con l'autore e gli sviluppatori di Boost. La libreria Asio potrebbe essere l'estensione e la personalizzazione per una piattaforma specifica o l'aggiunta di nuove funzionalità specifiche. Tuttavia, ciò dovrebbe essere migliorato, ma l'aspetto positivo è che Asio sarà in futuro un'implementazione di riferimento per un report tecnico di una libreria standard (per una libreria IO asincrona nella STL) in futuro.

Altri suggerimenti

Qualche bella documentazione su boost, incluso un capitolo su asio, è disponibile in un libro boost gratuito (a http://en.highscore.de/cpp/boost/index.html . Il capitolo su asio fornisce una panoramica generale e poi arriva fino a come sviluppare estensioni personalizzate per asio. Uno sforzo davvero fantastico di Boris Sch & # 228; ling!

Ho scritto due piccoli articoli che potrebbero essere usati come introduzioni a boost.asio. Sono disponibili dal il mio sito

NOTA: ho contattato gamedev.net per informarli dei problemi di formattazione. Purtroppo al momento della stesura di questo commento, questa risorsa è più difficile da raccomandare a causa di alcune modifiche al loro sito Web che nascondono / eliminano le istruzioni #include + una risorsa di file .zip mancante.

Un tutorial per principianti relativamente nuovo e molto buono per Boost.Asio (che introduce anche come usarlo in modo efficace con bind, shared_ptr e thread) può essere trovato qui:

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

Nota: se usi le funzionalità c ++ 0x, molti dei semplici usi di bind per la creazione di un funzione possono essere sostituiti con lambdas e shared_ptr / bind sono disponibili anche nell'ultima versione di Visual Studio (o gcc che include anche discussioni.)

Durante la ricerca di documentazione o tutorial, questa domanda veniva posta all'inizio dei risultati di ricerca, quindi è importante tenerlo aggiornato man mano che arrivano nuovi tutorial.

Ero anche abbastanza curioso a riguardo, ma questa pagina mi ha dato un vantaggio. È in francese, ma potresti usare google translate che è abbastanza leggibile (ho dovuto seguire questo percorso da solo).

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

La documentazione di asio, quella disponibile in versione boost, è minimalista ma molto precisa, ogni parola è significativa. Detto questo, ho imparato asio (e continuo a imparare) principalmente da SO.

A mio avviso, il rispondi a ' Confuso quando boost :: asio :: io_service esegue il blocco dei metodi / unblocks "è il primo passo, leggi di nuovo una lettura fino a quando non la capisci davvero, seconda risposta è anche utile.

Quindi ho sottoscritto un RSS per la più recente domanda di tag SO boost-asio e per questi due risponditori:

Tanner Sansburry , l'autore della risposta sopra, le sue risposte sono sempre molto precise, complete, con riferimenti, anche bellissimo schema s. Feed RSS
Sehe (scusate Sehe, solo secondo). Feed RSS

Con tutto quel materiale, sarai presto un esperto di asio!

Un po 'in ritardo alla festa, ma c'è un libro intitolato "Boost Asio Network Programming" (Pubblicazione Packt).

Ho comprato una copia di questo, l'ho letto durante il fine settimana e poi ho scritto un completo sul server in C ++ senza troppi problemi.

Dichiarazione di non responsabilità: non ho nulla a che fare con il libro

Mi sono imbattuto nel seguente pdf: http://boost.cowic.de/rc/pdf/asio_doc.pdf

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top