Лучшая документация для Boost: asio?


141

Документация, доступная на веб-сайте boost, ... ограничена.

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

Так ли это на самом деле? Если да, то почему?

Примечания:

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

Редактировать:

Ответы:


55

Во-первых, я уже довольно давно использую Boost.Asio - и разделяю вашу озабоченность. Чтобы ответить на ваш вопрос:

  • Документации по Boost.Asio, кроме введения и руководства, действительно очень мало. Я не являюсь автором, но это в основном потому, что есть слишком много вещей, которые нужно документировать для чего-то столь же низкого уровня, как библиотека асинхронного ввода-вывода.
  • Примеры дают больше, чем учебники. Если вы не против потратить немного времени на изучение различных примеров, я думаю, что их будет достаточно, чтобы вы начали. Если вы хотите сбежать с ним, справочная документация должна вам очень помочь.
  • Спросите в списке рассылки Boost Users и Boost Developers, если вы действительно застряли или ищете конкретные рекомендации. Я почти уверен, что многие люди захотят ответить на ваши вопросы в списках рассылки.

Прилагаются усилия (не являющиеся частью Boost.Asio), чтобы раскрыть большую функциональность и возможные альтернативные варианты использования. В лучшем случае это разбросано по сети в блогах и других формах неупакованной документации.

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


2
Спасибо за подтверждение подозрений. К сожалению, я пытался учиться на примерах, но с приличным, но ограниченным успехом. К сожалению, я не могу оправдать использование библиотеки, которая имеет небольшой набор примеров в качестве набора инструкций. Я могу прислушаться к вашему совету, чтобы спросить о ML, но с нетерпением жду лучшей поддержки!
mmocny

Я просто сложил два и два. Один из самых популярных гугл-хитов (и наиболее информативных статей), который я нашел во время
поиска в Google Boost

Да, но я пока не хотел говорить об этом открыто. ;) У Чиса Холхоффа (автора) также есть блог, в котором он много рассказывает об Asio и о том, как его можно использовать в не столь обычных обстоятельствах.
Дин Майкл,

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

63

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


41

Я написал две небольшие статьи, которые можно использовать как введение в boost.asio. Они доступны на моем сайте


4
Я нашел веб-сайт Алекса Отта независимо, когда исследовал, использовать ли asio или ace для нашего текущего проекта. Его сайт ответил на многие мои вопросы.
deft_code

Покойся с сайтом этого парня. Вот почему вы публикуете здесь ответы вместо того, чтобы ссылаться на мертвые сайты до скончания веков.
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 также доступны в последней версии Visual Studio (или gcc, которая также включает потоки .)

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


Отличная ссылка! Определенно хорошее руководство по началу работы с asio
Ральф

1
Спасибо, что разместили эту ссылку. К сожалению, я чувствовал, что как только все стало налаживаться, автор бросает мяч, бросает вас прямо в созданную им библиотеку и полностью потерял меня. Он / она перешли от подробного объяснения того, как bindработает работа, к тому, чтобы дать читателю возможность угадать, что Hiveнаходится в их библиотеке.
Rotsiser Mho

У них есть интерфейс hive defenition + прямо в учебнике. Я думаю, что это полезно и имеет смысл, потому что они представили это на странице 10 из 11.
M2tM

В этой статье упоминается zip-файл с примерами, но я их не вижу. Кроме того, #includes вырезаны из кода примера?
Джейк Гастон

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

21

8

Документация asio, доступная в boost, минималистична, но очень точна, каждое слово имеет значение. Тем не менее, я выучил asio (и продолжаю учиться) в основном на SO.

На мой взгляд, ответ на вопрос « Сбитый с толку, когда метод запуска boost :: asio :: io_service блокирует / разблокирует » - это самый первый шаг, прочитайте чтение еще раз, пока вы действительно не поймете это, второй ответ также полезен.

Затем я подписался по RSS на новейший вопрос о теге SO boost-asio и на этих двух ответчиков:

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

Со всем этим материалом вы скоро станете экспертом по asio!


7

Мне это тоже было очень любопытно, но эта страница дала мне некоторое преимущество. Он на французском, но вы можете использовать переводчик Google, который довольно читабелен (мне пришлось самому идти по этому пути).

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


0

Немного поздно на вечеринку, но вышла книга под названием «Boost Asio Network Programming» (издание Packt).

Я купил копию, прочитал ее на выходных, а затем написал полную версию на C ++ на сервере без особых проблем.

Отказ от ответственности: я не имею ничего общего с книгой


Ой. Я подобрал 3 книги об Asio от Packt и не нашел их заслуживающими доверия. Насколько я могу распознать, когда люди читали неправильные книги, по запаху кода, который они скопировали в свои вопросы SO, см., Например, stackoverflow.com/a/48084444/85371 или stackoverflow.com/a/47698904/85371
sehe

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.