我正在检查这个SSL 服务器示例 https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/example/cpp11/ssl/server.cpp并想知道为什么使用shared_ptr
。它从以下方法开始(do_accept()
)并持续使用auto self(shared_from_this())
in the session
类以延长处理程序之间的生命周期。
Q:是否可以使用tcp::socket
里面的会员session
类和避免shared_ptr
?必须进行什么修改?
void do_accept()
{
acceptor_.async_accept(
[this](const boost::system::error_code& error, tcp::socket socket)
{
if (!error)
{
std::make_shared<session>(std::move(socket), context_)->start();
}
do_accept();
}
);
}
Inside session
class:
void do_handshake()
{
auto self(shared_from_this());
socket_.async_handshake(boost::asio::ssl::stream_base::server,
[this, self](const boost::system::error_code& error)
{
if (!error)
{
do_read();
}
}
);
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)