Beste Dokumentation für Boost: asio?


141

Die auf der Boost-Website verfügbare Dokumentation ist ... begrenzt.

Nach allem, was ich lesen konnte, besteht allgemeiner Konsens darüber, dass es einfach schwierig ist, eine gute Dokumentation zur boost :: asio-Bibliothek zu finden.

Ist das wirklich der Fall? Wenn ja warum?

Anmerkungen:

  • Ich habe die Asio-Website (ohne Boost) bereits gefunden - und die Dokumentation scheint mit der auf der Boost-Website identisch zu sein.
  • Ich weiß, dass Boost :: asio neu ist! Ich suche nach Lösungen, nicht nach Ausreden.

Bearbeiten:

  • Es gibt einen Vorschlag, der Netzwerkbibliothek für TR2 eine Netzwerkbibliothek hinzuzufügen, die vom Autor von Boost: asio (Christopher Kohlhoff) geschrieben wurde. Es ist zwar keine Dokumentation für boost: asio, verwendet es jedoch als Grundlage für den TR2-Vorschlag. Da der Autor mehr Aufwand in dieses Dokument gesteckt hat, habe ich es als etwas hilfreich empfunden, wenn nicht als Referenz, dann zumindest als Übersicht.

Antworten:


54

Erstens benutze ich Boost.Asio bereits seit einiger Zeit - und ich teile Ihre Besorgnis. So beantworten Sie Ihre Frage:

  • Abgesehen von der Einführung und dem Tutorial gibt es wirklich sehr wenige Dokumentationen über Boost.Asio. Ich bin nicht der Autor, aber das liegt hauptsächlich daran, dass es einfach zu viele Dinge gibt, die für etwas so Niedriges wie eine asynchrone E / A-Bibliothek dokumentiert werden können.
  • Die Beispiele verraten mehr als die Tutorials. Wenn es Ihnen nichts ausmacht, ein wenig Zeit damit zu verbringen, sich die verschiedenen Beispiele anzusehen, würde ich denken, dass sie ausreichen sollten, um Ihnen den Einstieg zu erleichtern. Wenn Sie damit davonlaufen möchten, sollte Ihnen die Referenzdokumentation sehr helfen.
  • Fragen Sie in der Mailingliste für Boost-Benutzer und Boost-Entwickler nach, ob Sie wirklich nicht weiterkommen oder nach einer bestimmten Anleitung suchen. Ich bin mir ziemlich sicher, dass viele Leute bereit sein werden, Ihre Bedenken auf den Mailinglisten anzusprechen.

Es gibt Bemühungen (nicht Teil von Boost.Asio), viele Funktionen und mögliche alternative Anwendungsfälle aufzudecken. Dies ist bestenfalls in Blogs und anderen Formen nicht verpackter Dokumentation im Internet verteilt.

Eine Sache, die unklar ist und die wirklich eine enge Abstimmung mit dem Autor und den Entwicklern der Boost.Asio-Bibliothek erfordert, besteht darin, sie für eine bestimmte Plattform zu erweitern und anzupassen oder bestimmte neue Funktionen hinzuzufügen. Dies sollte zwar verbessert werden, aber das Gute ist, dass Asio in Zukunft eine Referenzimplementierung für einen technischen Standardbericht der Bibliothek (für eine asynchrone E / A-Bibliothek in der STL) sein wird.


2
Vielen Dank für die Bestätigung des Verdachts. Leider habe ich versucht, aus den Beispielen zu lernen, mit anständigem, aber begrenztem Erfolg. Leider kann ich die Verwendung einer Bibliothek mit einer kleinen Anzahl von Beispielen als Anweisungen nicht rechtfertigen. Ich kann Ihren Rat befolgen, um die ML zu fragen, aber ich warte gespannt auf eine bessere Unterstützung!
mmocny

Ich habe nur zwei und zwei zusammengestellt. Einer der Top-Google-Hits (und die informativsten Artikel), die ich beim Googeln gefunden habe, war auf Ihrem Blog :)
mmocny

Ja, aber ich wollte es noch nicht offen aussprechen. ;) Chis Kholhoff (der Autor) hat auch einen Blog, in dem er viel über Asio spricht und wie es unter nicht so häufigen Umständen verwendet werden kann.
Dean Michael

@mmocny Ich würde zustimmen, jedoch ist die Qualität der Implementierung von ASIO besser als bei den meisten anderen kostenlosen Ereignisbibliotheken, insbesondere unter Windows.
Unixman83

63

Eine nette Dokumentation zu Boost, einschließlich eines Kapitels zu Asio, finden Sie in einem (kostenlosen) Boost-Buch unter http://en.highscore.de/cpp/boost/index.html . Das Kapitel über asio bietet einen allgemeinen Überblick und geht dann so weit, wie Sie Ihre eigenen benutzerdefinierten asio-Erweiterungen entwickeln. Wirklich fantastische Leistung von Boris Schäling!


41

Ich habe zwei kleine Artikel geschrieben, die als Einführung in boost.asio dienen könnten. Sie sind auf meiner Website verfügbar


4
Ich habe die Website von Alex Ott unabhängig gefunden, als ich nachgeforscht habe, ob ich Asio oder Ace für unser aktuelles Projekt verwenden soll oder nicht. Seine Seite beantwortete viele meiner Fragen.
Deft_code

RIP die Seite dieses Typen. Aus diesem Grund veröffentlichen Sie hier Antworten, anstatt bis zum Ende der Zeit auf tote Websites zu verlinken.
Maxywb

30

HINWEIS: Ich habe gamedev.net kontaktiert, um sie über Formatierungsprobleme zu informieren. Leider ist diese Ressource zum Zeitpunkt des Schreibens dieses Kommentars schwieriger zu empfehlen, da einige Änderungen an ihrer Website die # include-Anweisungen + eine fehlende ZIP-Dateiressource verbergen / löschen.

Ein relativ neues und sehr gutes Anfänger-Tutorial für Boost.Asio (das auch die effektive Verwendung mit bind, shared_ptr und Threads vorstellt) finden Sie hier:

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

Hinweis: Wenn Sie c ++ 0x-Funktionen verwenden, können viele der einfachen Verwendungszwecke von bind zum Erstellen eines Funktors durch Lambdas ersetzt werden. Shared_ptr / bind ist auch in der neuesten Version von Visual Studio (oder gcc, die auch Threads enthält) verfügbar .)

Wenn ich nach Dokumentation oder einem Tutorial gesucht habe, tauchte diese Frage immer oben in den Suchergebnissen auf. Daher ist es wichtig, sie auf dem neuesten Stand zu halten, wenn neue Tutorials erscheinen.


Toller Link! Auf jeden Fall ein guter Leitfaden für den Einstieg in asio
Ralf

1
Vielen Dank für die Veröffentlichung dieses Links. Leider hatte ich das Gefühl, dass der Autor, gerade als es anfing, gut zu werden, den Ball fallen lässt, Sie direkt in die von ihm erstellte Bibliothek wirft und mich völlig verloren hat. Er / sie erklärte nicht mehr ausführlich, wie es bindfunktioniert, sondern überließ es dem Leser, zu erraten, was Hivesich in seiner Bibliothek befindet.
Rotsiser Mho

Sie haben die Hive Defenition + Schnittstelle direkt im Tutorial. Ich denke, es ist nützlich und sinnvoll, weil sie es auf Seite 10 von 11
vorstellen

Dieser Artikel erwähnt eine Zip-Datei mit Beispielen, aber ich sehe keine. Auch die #includes werden aus dem Beispielcode herausgeschnitten?
Jake Gaston

Ah, leider scheint der Artikel im Sand der Zeit mit einem Update des Rendering-Codes von gamedev.net erodiert zu sein, der mit spitzen Klammern anscheinend überhaupt nicht gut zurechtkommt, und ich kann zum jetzigen Zeitpunkt nicht für die Gültigkeit dieser Antwort bürgen . Obwohl es sich möglicherweise immer noch um eine in Ordnung befindliche Referenz handelt, wurde die Formatierung eindeutig nicht ordnungsgemäß migriert. @ JakeGaston
M2tM


8

Die Asio-Dokumentation, die in Boost verfügbar ist, ist minimalistisch, aber sehr präzise. Jedes Wort ist von Bedeutung. Das heißt, ich habe asio (und lerne weiter) hauptsächlich von SO gelernt.

Meiner Meinung nach ist die Antwort auf " Verwirrt, wenn boost :: asio :: io_service die Methode blockiert / entsperrt " der allererste Schritt. Lesen Sie einen Lesevorgang erneut, bis Sie ihn wirklich verstanden haben. Die zweite Antwort ist ebenfalls hilfreich.

Dann habe ich RSS für die neueste SO Boost-Asio-Tag-Frage und für diese beiden Antwortenden abonniert:

Tanner Sansburry , der Autor der obigen Antwort, seine Antworten sind immer sehr präzise, ​​umfassend, mit Referenzen, sogar schönen Schemata . RSS-Feed
Sehe (sorry Sehe, nur 2.). RSS-Feed

Mit all dem Material werden Sie bald ein Asio-Experte!




0

Ein bisschen spät zur Party, aber es gibt ein Buch mit dem Titel "Boost Asio Network Programming" (Packt Publishing).

Ich kaufte eine Kopie davon, las sie über das Wochenende und schrieb dann ohne große Probleme eine vollständige On-Server-Datei in C ++.

Haftungsausschluss: Ich habe nichts mit dem Buch zu tun


Ow. Ich habe 3 Bücher über Asio von Packt abgeholt und sie nicht als vertrauenswürdig befunden. Soweit ich erkennen kann, wenn Leute die falschen Bücher aus den Code-Gerüchen gelesen haben, die sie in ihre SO-Fragen kopiert haben, siehe z. B. stackoverflow.com/a/48084444/85371 oder stackoverflow.com/a/47698904/85371
sehe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.