Boost.Asio是一个轻量级的异步网络库,它有简洁,小巧,高效,有良好的可扩展性,支持高并发的IO处理,入门简单等诸多优点。
Boost.Asio在设计上采用和Ace相似的Proactor设计模式,同时内置了对多线程的支持,针对不同的平台,采用了最优的socket模型,可以说能发挥机器的最大并发处理能力。
同时在设计上,Asio在接口上也有良好的可扩展性,几乎每种设计元素都可以根据要求订制和扩充,可以进一步对模型进行抽象和建模来建立自己需要的开发平台。
--- 摘至Internet
发布时间:Dec 9, 2007 10:13 AM
下载地址:http://asio.sourceforge.net/
如果sf的镜像有问题,可以从这里下载http://osdn.dl.sourceforge.net/sourceforge/asio/asio-0.3.9.tar.bz2
作者公告:
I have just released 0.3.9. This release focuses on bug fixes and
improvements to the implementation. The interface is source-compatible
with version 0.3.8. Bug reports are appreciated as I want to get asio
as stable as possible before boost 1.35.
The changes and bug fixes of note are:
* Fixed a problem in the io_service::poll()/poll_one() implementation
where the demultiplexing task was being "lost" from the task queue.
This caused async socket operations to continue indefinitely after
the initial poll.
* Fixed the posix_fd_set_adapter class to support Mac OS X Leopard.
* Use GetModuleHandleA rather than GetModuleHandle to avoid a broken
compile when UNICODE is #defined.
* Fixed a memory leak that occurred when an io_service is allowed to
destruct with unfinished async_wait operations.
* Added a new timer implementation for Windows (when using I/O
completion ports) to eliminate the need for an additional thread.
* Fixed the solaris /dev/poll reactor to work correctly in threaded
applications.
* Added a workaround for a Microsoft Visual C++ iterator problem where
allowing the destruction of an iterator to an already-destroyed
string object resulted in a crash.
* Tried to fix reported crashes related to NULL error_category
pointers, probably due to order-of-initialisation issues (in
Boost.Asio version only).
* Added a new error code (asio::error::fd_set_failure) which is
returned when a socket descriptor is unable to fit into a select()
call's fd_set.
* Worked around deprecated function warnings when compiling with
Microsoft Visual C++ >= 8.
* Fixed a stall that occurred when sending large blocks of data over
SSL.
You can download the new release from here:
http://sourceforge.net/project/showfiles.php?group_id=122478&package_id=134200&release_id=560165
Non-boost version docs here:
http://asio.sourceforge.net/asio-0.3.9/doc/
Boost version docs here:
http://asio.sourceforge.net/boost_asio_0_3_9/libs/asio/doc/
Cheers,
Chris
Boost.Asio在设计上采用和Ace相似的Proactor设计模式,同时内置了对多线程的支持,针对不同的平台,采用了最优的socket模型,可以说能发挥机器的最大并发处理能力。
同时在设计上,Asio在接口上也有良好的可扩展性,几乎每种设计元素都可以根据要求订制和扩充,可以进一步对模型进行抽象和建模来建立自己需要的开发平台。
--- 摘至Internet
发布时间:Dec 9, 2007 10:13 AM
下载地址:http://asio.sourceforge.net/
如果sf的镜像有问题,可以从这里下载http://osdn.dl.sourceforge.net/sourceforge/asio/asio-0.3.9.tar.bz2
作者公告:
I have just released 0.3.9. This release focuses on bug fixes and
improvements to the implementation. The interface is source-compatible
with version 0.3.8. Bug reports are appreciated as I want to get asio
as stable as possible before boost 1.35.
The changes and bug fixes of note are:
* Fixed a problem in the io_service::poll()/poll_one() implementation
where the demultiplexing task was being "lost" from the task queue.
This caused async socket operations to continue indefinitely after
the initial poll.
* Fixed the posix_fd_set_adapter class to support Mac OS X Leopard.
* Use GetModuleHandleA rather than GetModuleHandle to avoid a broken
compile when UNICODE is #defined.
* Fixed a memory leak that occurred when an io_service is allowed to
destruct with unfinished async_wait operations.
* Added a new timer implementation for Windows (when using I/O
completion ports) to eliminate the need for an additional thread.
* Fixed the solaris /dev/poll reactor to work correctly in threaded
applications.
* Added a workaround for a Microsoft Visual C++ iterator problem where
allowing the destruction of an iterator to an already-destroyed
string object resulted in a crash.
* Tried to fix reported crashes related to NULL error_category
pointers, probably due to order-of-initialisation issues (in
Boost.Asio version only).
* Added a new error code (asio::error::fd_set_failure) which is
returned when a socket descriptor is unable to fit into a select()
call's fd_set.
* Worked around deprecated function warnings when compiling with
Microsoft Visual C++ >= 8.
* Fixed a stall that occurred when sending large blocks of data over
SSL.
You can download the new release from here:
http://sourceforge.net/project/showfiles.php?group_id=122478&package_id=134200&release_id=560165
Non-boost version docs here:
http://asio.sourceforge.net/asio-0.3.9/doc/
Boost version docs here:
http://asio.sourceforge.net/boost_asio_0_3_9/libs/asio/doc/
Cheers,
Chris