AsioC++网络和IO开发包
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)));
}
}