2008. 8. 22. 12:38
boost::asio overview
2008. 8. 22. 12:38 in boost
Supported Platforms
테스트된 플랫폼 및 컴파일러
- Win32 and Win64 using Visual C++ 7.1 and Visual C++ 8.0.
- Win32 using MinGW.
- Win32 using Cygwin. (__USE_W32_SOCKETS must be defined.)
- Linux (2.4 or 2.6 kernels) using g++ 3.3 or later.
- Solaris using g++ 3.3 or later.
- Mac OS X 10.4 using g++ 3.3 or later.
아래 플랫폼에서도 동작될것 같음...
- AIX 5.3 using XL C/C++ v9.
- HP-UX 11i v3 using patched aC++ A.06.14.
- QNX Neutrino 6.3 using g++ 3.3 or later.
- Solaris using Sun Studio 11 or later.
- Tru64 v5.1 using Compaq C++ v7.1.
- Win32 using Borland C++ 5.9.2
Boost.Asio 사용에 필요한 라이브러리들
- Boost.System : the boost::system::error_code 와 boost::system::system_error classe사용에 필요함
- Boost.Regex (선택) : read_until() 또는 async_read_until() 사용할때
- OpenSSL (선택) : SSL을 지원하게 할때
설명
boost::asio는 C++을 사용하는 system programmer를 위한 운영체제 독립적인 네트웍 라이브러리이다. 특히 아래에 나오는 리스트들을 목표로한다.
- Portability(이식성)
- Scalability(확장성)
- Efficiency(효율성)
- Model Berkeley sockets(버클리 소켓 모델)
- Ease of use(사용성)
- Basis for further abstraction(미래의 추상화에 대한 기초
** 기본적으로 boost::asio는 boost를 활용한 async 기반의 네트웍 라이브러리이다, ACE라는 아주 유명한 네트웍 라이브러리가 있지만, 충분한 이론적인 내공이 뒷받침 되지 않는 이상 사용하기도 힘들고, 무겁다는 느낌이 든다. 또한 boost의 경우 프로젝트 전반에 걸쳐 아주 유용하게 사용되지만, ACE는 네트웍 프로그래밍을 하지 않는 이상 사용할 일이 별로 없다. 또한 boost와 충돌되는 부분도 많고(networking(-_-), threading, sync object..등) 무엇보다 사용법을 익히기가 쉬우며, 다른 boost라이브러리들과의 찰떡 궁합(특히나, boost::bind)의 위력을 과시 함으로 인해서, ACE을 대체 하기 위한 수단으로도 나름 나쁘지는 않을것이라 생각된다.