Asio 是一个跨平台的C开发包用来处理网络和低级I/O编程,通过先进的C方法为开发人员提供连续异步模型。
示例代码:
void handle_read(const asio::error_code& error, size_t bytes_transferred) { if (!error) { asio::async_write(socket_, asio::buffer(data_, bytes_transferred), make_custom_alloc_handler(allocator_, boost::bind(&session::handle_write, shared_from_this(), asio::placeholders::error))); } }
void handle_write(const asio::error_code& error) { if (!error) { socket_.async_read_some(asio::buffer(data_), make_custom_alloc_handler(allocator_, boost::bind(&session::handle_read, shared_from_this(), asio::placeholders::error, asio::placeholders::bytes_transferred))); } }