Dokumentasi terbaik untuk Peningkatan: asio?

141

Dokumentasi yang tersedia di situs web boost ... terbatas.

Dari apa yang saya sudah bisa baca, konsensus umum adalah bahwa hanya sulit untuk menemukan dokumentasi yang bagus pada dorongan :: perpustakaan asio.

Benarkah ini masalahnya? Jika demikian, mengapa?

Catatan:

  • Saya telah menemukan situs web Asio (non-boost) - dan dokumentasi tampak identik dengan yang ada di situs web boost.
  • Saya tahu bahwa Boost :: asio baru! Saya mencari solusi bukan alasan.

Edit:

mmocny
sumber

Jawaban:

54

Pertama, saya sudah menggunakan Boost.Asio sudah cukup lama - dan saya berbagi keprihatinan Anda. Untuk menjawab pertanyaan Anda:

  • Benar-benar ada dokumentasi yang sangat langka tentang Boost.Asio selain dari pengantar dan tutorial. Saya bukan penulisnya, tetapi ini terutama karena ada terlalu banyak hal untuk didokumentasikan untuk sesuatu yang tingkat rendah seperti Perpustakaan IO Asinkron.
  • Contoh-contoh memberi lebih banyak daripada tutorial lakukan. Jika Anda tidak keberatan menghabiskan sedikit waktu untuk melihat berbagai contoh yang berbeda, saya akan berpikir mereka harus cukup untuk membantu Anda memulai. Jika Anda ingin melarikan diri dengan itu, maka dokumentasi referensi akan banyak membantu Anda.
  • Tanyakan sekitar di milis Pengguna dan Pengguna Peningkatan Boost jika Anda benar-benar terjebak atau mencari panduan khusus. Saya cukup yakin banyak orang akan bersedia untuk mengatasi masalah Anda di milis.

Ada upaya (bukan bagian dari Boost.Asio) untuk mengekspos banyak fungsi dan kemungkinan kasus penggunaan alternatif. Paling-paling ini tersebar di seluruh web dalam blog dan bentuk lain dari dokumentasi yang tidak dikemas.

Satu hal yang tidak jelas dan yang benar-benar akan membutuhkan koordinasi erat dengan penulis dan pengembang perpustakaan Boost.Asio adalah sejauh memperluas dan menyesuaikannya untuk platform tertentu atau menambahkan fungsionalitas baru yang spesifik. Ini harus ditingkatkan, tetapi hal baiknya adalah sepertinya Asio akan menjadi implementasi referensi untuk laporan teknis perpustakaan standar (untuk perpustakaan IO asinkron di STL) di masa depan.

Dean Michael
sumber
2
Terima kasih telah mengkonfirmasi kecurigaan. Sayangnya, saya mencoba belajar dari contoh-contoh tersebut, dengan keberhasilan yang layak tetapi terbatas. Sayangnya, saya tidak dapat membenarkan menggunakan perpustakaan yang memiliki sekumpulan contoh kecil sebagai sekumpulan instruksi. Saya mungkin mengindahkan saran Anda untuk bertanya pada ML, tetapi dengan sabar menunggu dukungan yang lebih baik!
mmocny
Saya hanya menyatukan dua dan dua. Salah satu hit google teratas (dan artikel paling informatif) yang saya temukan ketika googling boost asio ada di blog Anda :)
mmocny
Ya, tapi aku belum mau mengatakannya di tempat terbuka. ;) Chis Kholhoff (penulis) juga memiliki blog di mana ia banyak berbicara tentang Asio dan bagaimana itu dapat digunakan dalam keadaan yang tidak umum.
Dean Michael
@ mmocny saya setuju, namun kualitas implementasi ASIO lebih baik daripada kebanyakan pustaka acara gratis lainnya, terutama di bawah Windows.
unixman83
63

Beberapa dokumentasi bagus tentang boost termasuk bab tentang asio dapat ditemukan dalam buku boost (gratis) di http://en.highscore.de/cpp/boost/index.html . Bab tentang asio memberikan gambaran umum dan kemudian membahas bagaimana mengembangkan ekstensi asio kustom Anda sendiri. Upaya yang benar-benar fantastis oleh Boris Schäling!

Ralf
sumber
41

Saya menulis dua artikel kecil yang dapat digunakan sebagai pengantar untuk meningkatkan.asio. Mereka tersedia dari situs saya

Alex Ott
sumber
4
Saya menemukan situs web Alex Ott secara independen ketika meneliti apakah akan menggunakan asio atau ace untuk proyek kami saat ini atau tidak. Situsnya menjawab banyak pertanyaan saya.
deft_code
RIP situs orang ini. Inilah sebabnya mengapa Anda mengirim jawaban di sini alih-alih menautkan ke situs web yang mati sampai akhir waktu.
maxywb
30

CATATAN: Saya telah menghubungi gamedev.net untuk memberi tahu mereka tentang masalah pemformatan. Sayangnya pada saat menulis komentar ini, sumber ini lebih sulit untuk direkomendasikan karena beberapa perubahan dengan situs web mereka yang menyembunyikan / menghapus pernyataan #include + sumber daya file .zip yang hilang.

Tutorial pemula yang relatif baru dan sangat bagus untuk Boost.Asio (yang juga memperkenalkan cara menggunakannya secara efektif dengan bind, shared_ptr, dan utas) dapat ditemukan di sini:

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

Catatan: Jika Anda menggunakan fitur c ++ 0x banyak kegunaan sederhana bind untuk membuat functor dapat diganti dengan lambdas, dan shared_ptr / bind juga tersedia dalam versi terbaru studio visual (atau gcc yang juga menyertakan utas) .)

Ketika saya mencari dokumentasi atau tutorial, pertanyaan ini terus bermunculan di bagian atas hasil pencarian, jadi penting untuk tetap diperbarui saat tutorial baru muncul.

M2tM
sumber
Tautan bagus! Pasti panduan yang baik untuk memulai dengan asio
Ralf
1
Terima kasih telah memposting tautan ini. Sayangnya, saya merasa bahwa ketika mulai membaik, penulis menjatuhkan bola, membuang Anda langsung ke perpustakaan yang ia buat, dan benar-benar kehilangan saya. Dia mulai menjelaskan secara rinci bagaimana cara bindmeninggalkan pembaca untuk menebak apa yang Hiveada di perpustakaan mereka.
Rotsiser Mho
Mereka memiliki sarang defenisi + antarmuka langsung di tutorial. Saya pikir ini berguna dan masuk akal karena mereka memperkenalkannya di halaman 10 dari 11.
M2tM
Artikel ini menyebutkan file zip dengan contoh, tapi saya tidak melihatnya. Juga, #include dipotong dari kode contoh?
Jake Gaston
Ah, sayangnya sepertinya artikel ini telah terkikis di pasir waktu dengan pembaruan kode rendering gamedev.net yang tampaknya tidak menangani kurung sudut dengan baik sama sekali dan saya tidak dapat menjamin validitas jawaban ini pada saat ini. . Meskipun mungkin masih berupa referensi yang oke, pemformatannya jelas belum dimigrasi dengan benar. @JakeGaston
M2tM
8

Dokumentasi asio, yang tersedia dalam boost, minimalis tetapi sangat tepat, setiap kata penting. Yang mengatakan, saya telah belajar asio (dan terus belajar) terutama dari SO.

Menurut pendapat saya, jawaban untuk ' Bingung saat meningkatkan :: asio :: io_service menjalankan metode blok / buka blokir ' adalah langkah pertama, baca lagi sampai Anda benar-benar memahaminya, jawaban kedua juga membantu.

Kemudian saya memiliki RSS berlangganan pertanyaan tag boost boost-asio terbaru dan untuk dua penjawab ini:

Tanner Sansburry , penulis jawaban di atas, jawabannya selalu sangat tepat, komprehensif, dengan referensi, bahkan skema yang indah . RSS feed
Sehe (maaf Sehe, hanya 2). Umpan RSS

Dengan semua materi itu, Anda akan segera menjadi ahli asio!

Jean Davy
sumber
0

Saya menemukan pdf berikut: http://boost.cowic.de/rc/pdf/asio_doc.pdf

Kisalay
sumber
17
Tapi tunggu ... itu hal yang sama, hanya di pdf . Siapa yang membatalkan ini !?
Oleh Prypin
1
@BlaXpirit Sama seperti apa?
ahli
0

Sedikit terlambat ke pesta tetapi ada buku yang disebut "Boost Asio Network Programming" (Packt publishing).

Saya membeli salinan ini, membacanya akhir pekan lalu menulis lengkap di server di C ++ tanpa banyak masalah.

Penafian: Saya tidak ada hubungannya dengan buku

Dave F
sumber
Ow Saya telah mengambil 3 buku tentang Asio dari Packt, dan belum menemukannya dapat dipercaya. Sejauh yang saya bisa kenali ketika orang membaca buku yang salah dari kode berbau yang mereka salin ke pertanyaan SO mereka, lihat misalnya stackoverflow.com/a/48084444/85371 atau stackoverflow.com/a/47698904/85371
sehe