简介
socket_holder实现对socket的RAII管理
结构
析构函数
如果socket_为有效的,则关闭释放资源
~socket_holder()
{if (socket_ != invalid_socket){boost::system::error_code ec;socket_ops::state_type state = 0;socket_ops::close(socket_, state, true, ec);}
}
复位为无效的套接字
如果套接字为有效的,则关闭后,将套接字设置为无效的
void reset()
{if (socket_ != invalid_socket){boost::system::error_code ec;socket_ops::state_type state = 0;socket_ops::close(socket_, state, true, ec);socket_ = invalid_socket;}
}
复位持有另一套接字
如果为有效的,则关闭,设置新的套接字
void reset(socket_type s)
{reset();socket_ = s;
}
释放所有权
返回套接字,并将管理的套接字设置为无效的
socket_type release()
{socket_type tmp = socket_;socket_ = invalid_socket;return tmp;
}