Tài liệu tốt nhất cho Boost: asio?


141

Các tài liệu có sẵn trên trang web boost là ... hạn chế.

Từ những gì tôi đã có thể đọc, sự đồng thuận chung là rất khó tìm được tài liệu tốt về thư viện boost :: asio.

Đây đúng là tình trạng đó phải không? Nếu vậy, tại sao?

Ghi chú:

  • Tôi đã tìm thấy trang web Asio (không tăng) - và tài liệu này trông giống hệt như trên trang web boost.
  • Tôi biết rằng Boost :: asio là mới! Tôi đang tìm giải pháp không bào chữa.

Biên tập:

  • Có một đề xuất để thêm một thư viện mạng vào thư viện tiêu chuẩn cho TR2 được viết bởi tác giả của Boost: asio (Christopher Kohlhoff). Mặc dù nó không phải là tài liệu cho boost: asio, nhưng nó sử dụng nó làm cơ sở cho đề xuất TR2. Vì tác giả đã nỗ lực nhiều hơn vào tài liệu này, tôi đã thấy nó có phần hữu ích, nếu không phải là một tài liệu tham khảo, thì ít nhất là như một tổng quan.

Câu trả lời:


54

Đầu tiên, tôi đã sử dụng Boost.Asio khá lâu rồi - và tôi chia sẻ mối quan tâm của bạn. Để giải quyết câu hỏi của bạn:

  • Thực sự có tài liệu rất khan hiếm về Boost.Asio ngoài phần giới thiệu và hướng dẫn. Tôi không phải là tác giả, nhưng điều này chủ yếu là vì có quá nhiều thứ để ghi lại cho một cái gì đó ở cấp độ thấp như Thư viện IO không đồng bộ.
  • Các ví dụ cho đi nhiều hơn các hướng dẫn làm. Nếu bạn không ngại dành một chút thời gian để xem các ví dụ khác nhau, tôi sẽ nghĩ rằng họ nên đủ để bạn bắt đầu. Nếu bạn muốn chạy trốn với nó, thì tài liệu tham khảo sẽ giúp bạn rất nhiều.
  • Hỏi xung quanh trong danh sách gửi thư của Người dùng Boost và Nhà phát triển Boost nếu bạn thực sự bế tắc hoặc đang tìm hướng dẫn cụ thể. Tôi khá chắc chắn rằng nhiều người sẽ sẵn sàng giải quyết mối quan tâm của bạn trong danh sách gửi thư.

Có những nỗ lực (không phải là một phần của Boost.Asio) để thể hiện rất nhiều chức năng và các trường hợp sử dụng thay thế có thể. Điều này tốt nhất là nằm rải rác trên web trong blog và các hình thức tài liệu không đóng gói khác.

Một điều chưa rõ ràng và sẽ thực sự cần sự phối hợp chặt chẽ với tác giả và nhà phát triển của thư viện Boost.Asio sẽ là mở rộng và tùy chỉnh nó cho một nền tảng cụ thể hoặc thêm chức năng mới cụ thể. Điều này cần được cải thiện nhưng điều tốt là có vẻ như Asio sẽ là một triển khai tham chiếu cho báo cáo kỹ thuật thư viện tiêu chuẩn (đối với thư viện IO không đồng bộ trong STL) trong tương lai.


2
Cảm ơn đã xác nhận nghi ngờ. Thật không may, tôi đã cố gắng học hỏi từ các ví dụ, với thành công tốt nhưng hạn chế. Thật không may, tôi không thể biện minh cho việc sử dụng một thư viện có một tập hợp các ví dụ nhỏ như một bộ hướng dẫn. Tôi có thể chú ý lời khuyên của bạn để hỏi về ML, nhưng háo hức chờ đợi sự hỗ trợ tốt hơn!
mmocny

Tôi chỉ cần đặt hai và hai với nhau. Một trong những lượt truy cập hàng đầu của google (và hầu hết các bài viết thông tin) tôi đã tìm thấy trong khi googling boost asio có trên blog của bạn :)
mmocny

Vâng, nhưng tôi không muốn nói ra. ;) Chis Kholhoff (tác giả) cũng có một blog trong đó anh ấy nói rất nhiều về Asio và làm thế nào nó có thể được sử dụng trong những trường hợp không phổ biến.
Dean Michael

@mmocny Tôi đồng ý, tuy nhiên chất lượng triển khai ASIO tốt hơn hầu hết các thư viện sự kiện miễn phí khác, đặc biệt là trong Windows.
unixman83

63

Một số tài liệu hay về tăng cường bao gồm một chương về asio có thể được tìm thấy trong một cuốn sách tăng cường (miễn phí) tại http://en.highscore.de/cpp/boost/index.html . Chương về asio cung cấp một cái nhìn tổng quan chung và sau đó đi xa như cách phát triển các phần mở rộng asio tùy chỉnh của riêng bạn. Nỗ lực thực sự tuyệt vời của Boris Schäling!


41

Tôi đã viết hai bài báo nhỏ có thể được sử dụng làm phần giới thiệu cho boost.asio. Họ có sẵn từ trang web của tôi


4
Tôi tìm thấy trang web của Alex Ott một cách độc lập trong khi nghiên cứu xem nên sử dụng asio hay ace cho dự án hiện tại của chúng tôi. Trang web của anh ấy đã trả lời nhiều câu hỏi của tôi.
deft_code

RIP trang web của anh chàng này. Đây là lý do tại sao bạn đăng câu trả lời ở đây thay vì liên kết đến các trang web chết cho đến hết thời gian.
maxywb

30

LƯU Ý: Tôi đã liên hệ với gamedev.net để cho họ biết về các vấn đề định dạng. Thật không may tại thời điểm viết bình luận này, tài nguyên này khó đề xuất hơn vì một số thay đổi với trang web của họ, ẩn / xóa các câu lệnh #incoide + tài nguyên tệp .zip bị thiếu.

Một hướng dẫn người mới bắt đầu tương đối mới và rất tốt cho Boost.Asio (cũng giới thiệu cách sử dụng nó hiệu quả với bind, shared_ptr và chủ đề) có thể được tìm thấy ở đây:

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

Lưu ý: Nếu bạn đang sử dụng tính năng c ++ 0x, nhiều cách sử dụng liên kết đơn giản để tạo functor có thể được thay thế bằng lambdas và shared_ptr / bind cũng có sẵn trong phiên bản mới nhất của studio trực quan (hoặc gcc cũng bao gồm các luồng .)

Khi tôi đang tìm kiếm tài liệu hoặc một hướng dẫn, câu hỏi này liên tục xuất hiện ở đầu kết quả tìm kiếm, vì vậy điều quan trọng là phải cập nhật nó khi có hướng dẫn mới.


Liên kết tuyệt vời! Chắc chắn là một hướng dẫn tốt để bắt đầu với asio
Ralf

1
Cảm ơn cho đăng liên kết này. Thật không may, tôi cảm thấy rằng khi nó bắt đầu tốt, tác giả thả quả bóng, ném bạn thẳng vào thư viện mà anh ấy / cô ấy tạo ra, và hoàn toàn mất tôi. Anh ấy / cô ấy đã đi từ giải thích chi tiết về cách thức bindhoạt động để khiến người đọc đoán được những gì Hivetrong thư viện của họ.
Rotsiser Mho

Họ có giao diện hive defenition + trực tiếp trong hướng dẫn. Tôi nghĩ nó hữu ích và có ý nghĩa vì họ giới thiệu nó ở trang 10 trên 11.
M2tM

Bài viết này đề cập đến một tệp zip với các ví dụ, nhưng tôi không thấy. Ngoài ra, #incoides được cắt ra khỏi mã ví dụ?
Jake Gaston

Thật không may, có vẻ như bài báo đã bị xói mòn trong một khoảng thời gian với bản cập nhật mã kết xuất của gamedev.net dường như không xử lý tốt các dấu ngoặc góc và tôi không thể đảm bảo tính hợp lệ của câu trả lời này vào thời điểm này . Mặc dù nó vẫn có thể là một tài liệu tham khảo ổn, định dạng của nó rõ ràng không được di chuyển đúng cách. @JakeGaston
M2tM


8

Tài liệu asio, một tài liệu có sẵn trong boost, tối giản nhưng rất chính xác, mỗi từ đều có ý nghĩa. Điều đó nói rằng, tôi đã học asio (và tiếp tục học) chủ yếu từ SO.

Theo tôi, câu trả lời cho ' Bối rối khi boost :: asio :: io_service chạy khối / unblocks ' là bước đầu tiên, đọc lại đọc cho đến khi bạn thực sự hiểu nó, câu trả lời thứ hai cũng hữu ích.

Sau đó, tôi đã đăng ký RSS cho câu hỏi thẻ SO boost-asio mới nhất và hai câu trả lời sau:

Tanner Sansburry , tác giả của câu trả lời ở trên, câu trả lời của ông luôn rất chính xác, toàn diện, với các tài liệu tham khảo, thậm chí là lược đồ đẹp . RSS feed
Sehe (xin lỗi Sehe, chỉ thứ 2). Nguồn cấp dữ liệu RSS

Với tất cả những tài liệu đó, bạn sẽ sớm trở thành một chuyên gia asio!




0

Đến bữa tiệc muộn một chút nhưng có một cuốn sách tên là "Boost Asio Network Lập trình" (xuất bản Packt).

Tôi đã mua một bản sao này, đọc nó vào cuối tuần và sau đó viết một bản đầy đủ trên máy chủ trong C ++ mà không gặp vấn đề gì nhiều.

Tuyên bố miễn trừ trách nhiệm: Tôi không có gì để làm với cuốn sách


Ow. Tôi đã chọn tôi nghĩ 3 cuốn sách về Asio từ Packt và không thấy chúng đáng tin. Trong phạm vi mà tôi có thể nhận ra khi mọi người đọc nhầm sách từ mã có mùi họ đã sao chép vào câu hỏi SO của họ, xem ví dụ stackoverflow.com/a/48084444/85371 hoặc stackoverflow.com/a/47698904/85371
sehe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.