Boost : asio에 대한 최고의 설명서?


141

부스트 웹 사이트 에서 제공되는 설명서 는 제한적입니다.

내가 읽을 수 있었던 것으로부터 일반적인 합의는 boost :: asio 라이브러리에 대한 좋은 문서를 찾기가 어렵다는 것입니다.

이것이 사실입니까? 그렇다면 왜 그렇습니까?

노트:

  • 나는 (부스트가 아닌) Asio 웹 사이트를 이미 발견했으며 문서는 부스트 웹 사이트의 문서와 동일합니다.
  • Boost :: asio가 새롭다는 것을 알고 있습니다! 변명하지 않는 솔루션을 찾고 있습니다.

편집하다:

  • 있습니다 TR2의 표준 라이브러리에 네트워킹 라이브러리를 추가하는 제안 ASIO (크리스토퍼 Kohlhoff) : 부스트의 저자에 의해 쓰여진은. boost : asio에 대한 문서는 아니지만 TR2 제안의 기반으로 사용합니다. 저자는이 문서에 더 많은 노력을 기울 였기 때문에 참고 자료가 아니라 최소한 개요로서 다소 도움이된다는 것을 알게되었습니다.

답변:


54

먼저, Boost.Asio를 이미 꽤 오랫동안 사용해 왔으며 여러분의 관심사를 공유합니다. 질문을 해결하려면 :

  • 소개와 튜토리얼을 제외하고 Boost.Asio에 대한 문서는 매우 드 really니다. 필자는 저자가 아니지만 주로 비동기식 IO 라이브러리와 같은 저수준으로 문서화하기에는 너무 많은 것들이 있기 때문입니다.
  • 예제는 튜토리얼보다 더 많은 정보를 제공합니다. 다른 예제를 살펴 보는 데 시간이 조금 걸리지 않는다면 시작하기에 충분하다고 생각합니다. 그것으로 도망 가고 싶다면 참조 문서가 많은 도움이 될 것입니다.
  • 부스트 사용자 및 부스트 개발자 메일 링리스트에서 실제로 문제가 있거나 특정 지침을 찾고 있는지 문의하십시오. 많은 사람들이 메일 링리스트에 대한 귀하의 우려를 기꺼이 해결할 것입니다.

많은 기능과 가능한 대체 사용 사례를 공개하려는 노력이 있습니다 (Boost.Asio의 일부는 아님). 이것은 블로그와 다른 형태의 패키지되지 않은 문서로 웹 전체에 흩어져 있습니다.

명확하지 않으며 Boost.Asio 라이브러리의 개발자 및 개발자와 긴밀한 조정이 필요한 한 가지는 특정 플랫폼에 맞게 라이브러리를 확장 및 사용자 정의하거나 특정 새로운 기능을 추가하는 것입니다. 이것은 개선되어야하지만 좋은 점은 앞으로 Asio가 표준 라이브러리 기술 보고서 ​​(STL의 비동기 IO 라이브러리에 대한)에 대한 참조 구현이 될 것입니다.


2
의심을 확인해 주셔서 감사합니다. 불행히도, 나는 예를 들어 보았지만 제한된 성공을 거두었습니다. 불행히도, 작은 예제 세트가있는 라이브러리를 명령어 세트로 사용하면 정당화 할 수 없습니다. ML에 문의하라는 조언에 귀를 기울 이겠지만 더 나은 지원을 간절히 기다리고 있습니다!
mmocny

나는 단지 둘과 둘을 합쳤다. 인터넷 검색 부스트 asio가 블로그에있는 동안 찾은 최고의 Google 조회수 (및 대부분의 유익한 기사) 중 하나 :
mmocny

네,하지만 아직 공개적으로 말하고 싶지 않았습니다. ;) Chis Kholhoff (저자)는 Asio에 대한 블로그와 일반적인 상황에서 어떻게 사용할 수 있는지에 대한 블로그를 가지고 있습니다.
Dean Michael

@mmocny 나는 동의하지만 ASIO 구현의 품질은 다른 Windows, 특히 Windows의 다른 무료 이벤트 라이브러리보다 우수합니다.
unixman83

63

asio에 대한 장을 포함하여 boost에 대한 훌륭한 문서는 http://en.highscore.de/cpp/boost/index.html의 무료 부스트 책에서 찾을 수 있습니다 . asio에 관한 장은 일반적인 개요를 제공하고 나만의 맞춤형 ASIO 확장을 개발하는 방법을 설명합니다. Boris Schäling의 환상적인 노력!


41

나는 boost.asio에 대한 소개로 사용할 수있는 두 개의 작은 기사를 썼습니다. 그들은 내 사이트 에서 사용할 수 있습니다


4
현재 프로젝트에 asio 또는 ace를 사용할지 여부를 조사하면서 Alex Ott의 웹 사이트를 독립적으로 찾았습니다. 그의 사이트는 많은 질문에 대답했습니다.
deft_code

이 사람의 사이트를 리핑하십시오. 당신이 끝날 때까지 죽은 웹 사이트에 연결하는 대신 여기에 답변을 게시하는 이유입니다.
maxywb

30

참고 : 나는 포맷 문제에 대해 알려주기 위해 gamedev.net에 연락했습니다. 불행히도이 의견을 작성할 당시이 웹 사이트는 #include 문 + 누락 된 .zip 파일 리소스를 숨기거나 삭제하는 웹 사이트의 일부 변경으로 인해 권장하기가 더 어렵습니다.

Boost.Asio에 대한 비교적 새롭고 훌륭한 초보자 자습서 (바인드, shared_ptr 및 스레드와 함께 효과적으로 사용하는 방법도 소개)는 다음과 같습니다.

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

참고 : c ++ 0x 기능을 사용하는 경우 functor를 만들기 위해 bind를 사용하는 많은 간단한 사용법을 람다로 바꿀 수 있으며 shared_ptr / bind는 최신 버전의 Visual Studio (또는 스레드를 포함하는 gcc)에서도 사용할 수 있습니다 .)

설명서 나 자습서를 검색 할 때이 질문이 검색 결과의 최상위에 계속 표시되므로 새 자습서가 나오면 계속 업데이트해야합니다.


훌륭한 링크! asio 시작하기에 확실히 좋은 안내서
Ralf

1
이 링크를 게시 해 주셔서 감사합니다. 불행하게도, 나는 그것이 좋아지기 시작하자마자 저자가 공을 떨어 뜨리고 자신이 만든 라이브러리에 버리면 완전히 나를 잃어 버렸다고 생각했습니다. 도서관에 bind무엇이 있는지 추측하기 위해 독자를 떠나는 방법에 대해 자세히 설명하는 것부터 시작했습니다 Hive.
Rotsiser Mho

그들은 튜토리얼에서 직접 하이브 방어 + 인터페이스를 가지고 있습니다. 나는 그것이 유용하다고 생각합니다.
11/11

이 기사에서는 예제가 포함 된 zip 파일에 대해 언급하지만 볼 수는 없습니다. 또한 #includes는 예제 코드에서 잘립니다.
Jake Gaston

아, 불행히도 기사가 괄호를 전혀 처리하지 못하는 것으로 보이는 gamedev.net의 렌더링 코드 업데이트로 시간이 지남에 따라이 시점 에서이 답변의 유효성을 보증 할 수는 없습니다. . 여전히 괜찮은 참조 일 수 있지만 형식이 올바르게 마이그레이션되지 않았습니다. @JakeGaston
M2tM


8

부스트로 제공되는 asio 문서는 미니멀하지만 매우 정확하며 각 단어는 중요합니다. 즉, 나는 주로 SO에서 ASIO를 배우고 계속 배우고 있습니다.

내 생각에, ' boost :: asio :: io_service run method blocks / unblocks '에 대한 대답 은 첫 번째 단계이며, 실제로 이해할 때까지 다시 읽으십시오. 두 번째 대답 또한 도움이된다.

그런 다음 RSS를 최신 SO 부스트-아시오 태그 질문 과이 두 응답자 에게 구독했습니다 .

위의 답변의 저자 인 Tanner Sansburry 는 그의 답변은 항상 매우 정확하고 포괄적이며 참조, 심지어 아름다운 스키마까지 포함 합니다. RSS 피드
Sehe (죄송합니다. Sehe, 2 위). RSS 피드

이 모든 자료를 통해 곧 전문가가 될 것입니다!




0

파티에 조금 늦었지만 "Boost Asio Network Programming"(Packt publishing)이라는 책이 있습니다.

나는 이것의 사본을 사고 주말에 그것을 읽은 다음 많은 문제없이 C ++로 서버에 전체를 썼다.

면책 조항 : 나는 책과 관련이 없습니다


아야 나는 Packt의 Asio에 관한 3 권의 책을 집어 들었고 신뢰할만한 책을 찾지 못했습니다. 사람들이 SO 질문에 복사 한 코드 냄새에서 잘못된 책을 읽었을 때 알 수있는 범위까지, 예를 들어 stackoverflow.com/a/48084444/85371 또는 stackoverflow.com/a/47698904/85371
sehe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.