เอกสารที่ดีที่สุดสำหรับ Boost: asio?


141

เอกสารที่มีอยู่ในเว็บไซต์เพิ่มมี จำกัด ...

จากสิ่งที่ฉันสามารถอ่านได้ฉันทามติทั่วไปก็คือมันยากที่จะหาเอกสารที่ดีเกี่ยวกับ boost :: asio library

เป็นกรณีนี้จริงเหรอ? ถ้าเป็นเช่นนั้นทำไม

หมายเหตุ:

  • ฉันได้พบเว็บไซต์ Asio (ไม่เพิ่ม) แล้วและเอกสารดูเหมือนจะเหมือนกับเว็บไซต์ Boost
  • ฉันรู้ว่า Boost :: asio เป็นของใหม่! ฉันกำลังมองหาวิธีแก้ปัญหาไม่ใช่ข้อแก้ตัว

แก้ไข:

คำตอบ:


54

ก่อนอื่นฉันใช้ Boost.Asio มาระยะหนึ่งแล้วและฉันแบ่งปันความกังวลของคุณ เพื่อตอบคำถามของคุณ:

  • มีเอกสารที่หายากมากเกี่ยวกับ Boost.Asio นอกเหนือจากการแนะนำและการสอน ฉันไม่ใช่ผู้เขียน แต่ส่วนใหญ่เป็นเพราะมีหลายสิ่งมากเกินไปที่จะทำเอกสารสำหรับบางสิ่งในระดับต่ำในฐานะ Asynchronous IO Library
  • ตัวอย่างให้มากกว่าบทเรียนที่ทำ หากคุณไม่รังเกียจที่จะใช้เวลาดูตัวอย่างที่แตกต่างกันฉันคิดว่าพวกเขาน่าจะพอเพียงเพื่อให้คุณเริ่มต้น หากคุณต้องการหลบหนีด้วยเอกสารอ้างอิงควรช่วยคุณได้มาก
  • ถามผู้ใช้ในรายชื่อผู้รับจดหมาย Boost Boost และ Boost Developers หากคุณติดขัดจริงๆหรือมองหาคำแนะนำเฉพาะ ฉันค่อนข้างมั่นใจว่าผู้คนจำนวนมากยินดีที่จะตอบข้อกังวลของคุณในรายการจดหมาย

มีความพยายาม (ไม่ใช่ส่วนหนึ่งของ Boost.Asio) เพื่อแสดงฟังก์ชั่นและการใช้งานทางเลือกที่เป็นไปได้มากมาย สิ่งที่ดีที่สุดนี้กระจัดกระจายไปทั่วเว็บในบล็อกและเอกสารอื่น ๆ ที่ไม่ใช่แพ็คเกจ

สิ่งหนึ่งที่ไม่ชัดเจนและจะต้องประสานงานอย่างใกล้ชิดกับผู้แต่งและนักพัฒนาของห้องสมุด Boost.Asio จะเป็นการขยายและปรับแต่งมันสำหรับแพลตฟอร์มที่เฉพาะเจาะจงหรือเพิ่มฟังก์ชั่นใหม่ที่เฉพาะเจาะจง สิ่งนี้ควรได้รับการปรับปรุงให้ดีขึ้น แต่สิ่งที่ดีคือดูเหมือนว่า Asio จะใช้การอ้างอิงสำหรับรายงานทางเทคนิคไลบรารีมาตรฐาน (สำหรับไลบรารี IO แบบอะซิงโครนัสใน STL) ในอนาคต


2
ขอบคุณที่ยืนยันข้อสงสัย น่าเสียดายที่ฉันลองเรียนรู้จากตัวอย่างด้วยความสำเร็จดี แต่ จำกัด น่าเสียดายที่ฉันไม่สามารถปรับใช้ห้องสมุดที่มีตัวอย่างขนาดเล็กเป็นชุดของคำแนะนำ ฉันอาจฟังคำแนะนำของคุณให้ถามเกี่ยวกับ ML แต่รอคอยการสนับสนุนที่ดีกว่าอย่างกระตือรือร้น!
mmocny

ฉันแค่รวมสองและสองเข้าด้วยกัน หนึ่งในความนิยมสูงสุดของ google (และบทความที่ให้ข้อมูลมากที่สุด) ฉันพบในขณะที่ googling boost asio อยู่ในบล็อกของคุณ :)
mmocny

ใช่ แต่ฉันไม่ต้องการพูดออกมาในที่เปิดเลย ;) Chis Kholhoff (ผู้เขียน) มีบล็อกที่เขาพูดถึง Asio มากมายและสามารถใช้ในสถานการณ์ที่ไม่ธรรมดาได้อย่างไร
Dean Michael

@ mmocny ฉันจะเห็นด้วยอย่างไรก็ตามคุณภาพของการใช้ ASIO นั้นดีกว่าไลบรารี่เหตุการณ์ฟรีส่วนใหญ่โดยเฉพาะใน Windows
unixman83

63

บางเอกสารที่ดีในการส่งเสริมรวมถึงบทที่เกี่ยวกับ ASIO สามารถพบได้ใน (ฟรี) หนังสือเพิ่มที่http://en.highscore.de/cpp/boost/index.html บทที่เกี่ยวกับ asio ให้ภาพรวมทั่วไปแล้วไปถึงวิธีการพัฒนาส่วนขยาย asio ที่คุณกำหนดเอง ความพยายามที่ยอดเยี่ยมจริงๆโดย Boris Schäling!


41

ฉันเขียนบทความเล็ก ๆ สองบทความที่สามารถใช้เป็นคำแนะนำเพื่อ boost.asio พวกเขาสามารถใช้ได้จากเว็บไซต์ของฉัน


4
ฉันพบเว็บไซต์ของ Alex Ott อย่างอิสระในขณะที่ค้นคว้าว่าจะใช้ asio หรือ ace สำหรับโครงการปัจจุบันของเราหรือไม่ เว็บไซต์ของเขาตอบคำถามของฉันมากมาย
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 อย่างง่ายในการสร้าง functor สามารถแทนที่ด้วย lambdas และ shared_ptr / bind ยังมีอยู่ใน visual Studio เวอร์ชันล่าสุด (หรือ gcc ซึ่งรวมถึงเธรดด้วย .)

เมื่อฉันกำลังค้นหาเอกสารหรือบทช่วยสอนคำถามนี้ยังคงปรากฏขึ้นที่ด้านบนของผลการค้นหาดังนั้นจึงเป็นเรื่องสำคัญที่จะต้องปรับปรุงให้ทันสมัยอยู่เสมอเมื่อมีบทช่วยสอนใหม่ ๆ เกิดขึ้น


ลิงค์ยอดเยี่ยม! คำแนะนำที่ดีสำหรับการเริ่มต้นใช้ asio
Ralf

1
ขอขอบคุณที่โพสต์ลิงค์นี้ น่าเสียดายที่ฉันรู้สึกว่าเมื่อเริ่มดีขึ้นผู้เขียนหยดลูกบอลทิ้งคุณลงไปในห้องสมุดที่เขา / เธอสร้างขึ้นมาและทำให้ฉันสูญเสียไปโดยสิ้นเชิง เขา / เธออธิบายรายละเอียดจากวิธีการที่bindจะออกจากผู้อ่านที่จะคาดเดาสิ่งที่Hiveอยู่ในห้องสมุดของพวกเขา
Rotsiser Mho

พวกเขามีกลุ่ม Defenition + อินเตอร์เฟสโดยตรงในบทช่วยสอน ฉันคิดว่ามันมีประโยชน์และสมเหตุสมผลเพราะพวกเขาแนะนำไว้ในหน้า 10 จาก 11
M2tM

บทความนี้กล่าวถึงไฟล์ซิปพร้อมตัวอย่าง แต่ฉันไม่เห็น นอกจากนี้ #includes ยังถูกตัดออกจากโค้ดตัวอย่างหรือไม่
Jake Gaston

อ่าโชคไม่ดีที่ดูเหมือนว่าบทความจะเซาะในเวลาที่มีการปรับปรุงรหัสการแสดงผลของ gamedev.net ซึ่งดูเหมือนว่าจะไม่จัดการกับวงเล็บมุมที่ดีเลยและฉันไม่สามารถรับรองความถูกต้องของคำตอบนี้ ณ เวลานี้ . แม้ว่ามันอาจจะเป็นการอ้างอิงที่ไม่เป็นไร แต่การจัดรูปแบบของมันก็ไม่ได้ถูกย้ายอย่างเหมาะสม @JakeGaston
M2tM

21

8

เอกสาร asio หนึ่งที่มีอยู่ในการเพิ่มความเรียบง่าย แต่แม่นยำมากแต่ละคำมีความสำคัญ ที่กล่าวว่าฉันได้เรียนรู้ asio (และยังคงเรียนรู้) ส่วนใหญ่จาก SO

ในความคิดของฉันคำตอบของ ' สับสนเมื่อเพิ่ม :: asio :: io_service เรียกใช้วิธีการบล็อก / unblocks ' เป็นขั้นตอนแรกอ่านอ่านอีกครั้งจนกว่าคุณจะเข้าใจจริง ๆคำตอบที่สองยังเป็นประโยชน์

จากนั้นฉันได้สมัครรับ RSS กับคำถามแท็ก boost-asio ใหม่ล่าสุดและสำหรับผู้ตอบคำถามทั้งสองนี้:

แทนเนอร์ Sansburry , ผู้เขียนของคำตอบข้างต้นคำตอบของเขามักจะแม่นยำมากครอบคลุมที่มีการอ้างอิงแม้สวยงามสคี s RSS feed
Sehe (ขอโทษ Sehe เพียง 2) ฟีด RSS

ด้วยเนื้อหาทั้งหมดนี้คุณจะกลายเป็นผู้เชี่ยวชาญ 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.