Найкраща документація для Boost: asio?


141

Документація, доступна на веб-сайті Boost , ... обмежена.

З того, що я зміг прочитати, загальний консенсус полягає в тому, що знайти важку документацію про бібліотеку boost :: asio просто важко.

Це справді так? Якщо так, то чому?

Примітки:

  • Я вже знайшов (не підсилюючий) веб-сайт Asio - і документація виглядає так само, як і на веб-сайті Boost.
  • Я знаю, що Boost :: asio є новим! Я шукаю рішення, а не виправдання.

Редагувати:

Відповіді:


54

По-перше, я вже досить довго використовую Boost.Asio - і я поділяю вашу стурбованість. Щоб вирішити своє питання:

  • Існує дуже мало документації про Boost.Asio, окрім вступу та підручника. Я не автор, але це здебільшого тому, що документується просто дуже багато речей для такого ж низького рівня, як Асинхронна бібліотека вводу-виводу.
  • Приклади дають більше, ніж навчальні посібники. Якщо ви не проти витратити трохи часу на перегляд різних прикладів, я думаю, що їх має вистачити для початку роботи. Якщо ви хочете втекти з цим, то довідкова документація повинна вам дуже допомогти.
  • Поцікавтеся у списку розсилки користувачів Boost і Boost Developers, якщо ви дійсно застрягли чи шукаєте конкретних рекомендацій. Я впевнений, що багато людей будуть готові вирішити ваші проблеми в списках розсилки.

Є зусилля (не є частиною Boost.Asio), щоб розкрити багато функціональних можливостей та можливих випадків альтернативного використання. Це в кращому випадку розкидано по Інтернету в блогах та інших формах непакетної документації.

Одна річ, яка незрозуміла і яка дійсно потребуватиме тісної координації з автором та розробниками бібліотеки Boost.Asio, це стосується розширення та налаштування її для певної платформи або додавання конкретних нових функціональних можливостей. Це потрібно вдосконалити, але добре, що це виглядає так, що в майбутньому Asio стане еталонною реалізацією для стандартного технічного звіту про бібліотеку (для асинхронної бібліотеки вводу-виводу в STL).


2
Дякуємо за підтвердження підозр. На жаль, я спробував вчитися на прикладах з гідним, але обмеженим успіхом. На жаль, я не можу виправдати використання бібліотеки, яка має невеликий набір прикладів як набір інструкцій. Я можу прислухатися до вашої поради просити ML, але нетерпляче чекаю кращої підтримки!
mmocny

Я просто склав два-два разом. Один із найкращих хітів Google (і найінформативніших статей), який я знайшов під час googling boost asio, був у вашому блозі :)
mmocny

Так, але я ще не хотів це говорити під відкритим небом. ;) У Чіса Холхоффа (автора) також є блог, в якому він багато розповідає про Асіо і про те, як його можна використовувати в не дуже поширених обставинах.
Дін Майкл

@mmocny Я би погодився, проте якість реалізації ASIO краща, ніж у більшості інших бібліотек безкоштовних подій, особливо під Windows.
unixman83

63

Деякі приємні документи про підвищення, включаючи розділ про Азіо, можна знайти в (безкоштовній) книзі підсилення за адресою http://en.highscore.de/cpp/boost/index.html . Розділ про asio надає загальний огляд, а потім іде до того, як розробити свої власні розширення для asio. Дійсно фантастичні зусилля Бориса Шелінга!


41

Я написав дві невеликі статті, які можна використовувати як вступ до boost.asio. Вони доступні з мого сайту


4
Я самостійно знайшов веб-сайт Алекса Отта, досліджуючи, чи слід використовувати азіо чи туз для нашого поточного проекту. Його сайт відповів на багато моїх запитань.
deft_code

RIP-сайт цього хлопця. Ось чому ви публікуєте відповіді тут замість посилань на мертві веб-сайти до кінця часу.
maxywb

30

ПРИМІТКА. Я зв’язався з gamedev.net, щоб повідомити про проблеми форматування. На жаль, на момент написання цього коментаря цей ресурс важче рекомендувати через деякі зміни на їхньому веб-сайті, які приховують / видаляють #include заяви + відсутній файл .zip.

Порівняно новий і дуже хороший підручник для початківців для Boost.Asio (який також представляє, як його ефективно використовувати з bind, shared_ptr та потоками) можна знайти тут:

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

Примітка: Якщо ви використовуєте функції c ++ 0x, багато простих способів використання bind для створення функтора можна замінити лямбдами, а shared_ptr / bind також доступні в останній версії візуальної студії (або gcc, яка також включає нитки .)

Коли я шукав документацію чи підручник, це запитання постійно з’являлося у верхній частині результатів пошуку, тому важливо постійно оновлювати його, коли з’являються нові підручники.


Чудове посилання! Безумовно, хороший посібник із початку роботи з asio
Ральф

1
Дякуємо, що опублікували це посилання. На жаль, я відчув, що так само, як це починає ставати добре, автор кидає м'яч, скидаючи вас прямо в створену ним бібліотеку і повністю втратив мене. Він / вона пішов від детального пояснення того, як bindпрацює, до того, щоб читач залишив здогадуватися, що Hiveє в їх бібліотеці.
Rotsiser Mho

Вони мають інтерфейс визначення вулика + інтерфейс безпосередньо в навчальному посібнику. Я думаю, що це корисно і має сенс, оскільки вони представляють його на сторінці 10 з 11.
M2tM

У цій статті згадується zip-файл із прикладами, але я його не бачу. Також #includes вирізані з прикладу коду?
Джейк Гастон

Ах, на жаль, здається, що стаття зруйнувалась за пісками часу з оновленням коду візуалізації gamedev.net, який, здається, взагалі не справляється з кутовими дужками, і я не можу підтвердити обґрунтованість цієї відповіді в даний момент часу. . Хоча це все ще може бути нормальним посиланням, його форматування явно не було належним чином перенесено. @JakeGaston
M2tM

21

8

Документація про asio, наявна у прискоренні, мінімалістична, але дуже точна, кожне слово є важливим. Але це було зрозуміло, що я вивчив азіо (і продовжую вчитися) головним чином з ТА.

На мою думку, відповідь на « Плутати, коли boost :: asio :: io_service запускає метод блокує / розблоковує » - це перший крок, прочитайте прочитане ще раз, поки ви його справді не зрозумієте, друга відповідь також корисна.

Тоді я підписався на найновіше запитання SO boost-asio і на цих двох відповідей:

Таннер Сансбурі , автор відповіді вище, його відповіді завжди дуже точні, вичерпні, з посиланнями, навіть прекрасними схемами . RSS канал
Sehe (вибачте, Sehe, лише 2-й). RSS-канал

З усім цим матеріалом, ви скоро будете азіатським експертом!


7

Мені теж було цікаво з цього приводу, але ця сторінка дала мені певний початок. Це по-французьки, але ви можете використовувати google translate, який досить читабельний (я повинен був слідувати цим шляхом самостійно).

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



0

Трохи запізнюємось на вечірку, але є книга під назвою "Підвищити мережеве програмування Asio" (публікація Packt).

Я купив копію цього, прочитав його протягом вихідних, а потім написав повну на сервер на C ++ без особливих проблем.

Відмова: Я не маю нічого спільного з книгою


Ов. Я взяв, я думаю, 3 книги про Асіо від Packt, і не знайшов їх надійними. Тією ж мірою , що я можу розпізнати , коли люди читали неправильні книги з коду запахів вони скопіювали в свої С.О. питання, дивіться , наприклад , stackoverflow.com/a/48084444/85371 або stackoverflow.com/a/47698904/85371
sehe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.