假设我们有一个处理程序H
和一个接受程序A
。假设我们做到了A.async_accept(some_slave_socket, H)
。然后有人想要连接,所以H
被称为。它已经执行了。然后其他人想要连接。一直H
被称为第二次或有我们不得不呼吁async_accept
再次是什么?
该处理程序将仅被调用一次。否则,它将使用该套接字的引用来破坏您的套接字。但是,您可以做的是async_accept
在处理程序中调用in开始一个新的循环:
tcp::acceptor acceptor;
void accept_handler(const asio::error_code& error, asio::ip::tcp::socket peer)
{
if (!error)
{
my_connection_container.push_back(std::move(peer));
}
acceptor.async_accept(accept_handler);
}
int main()
{
acceptor = tcp:acceptor(my_io_context);
acceptor.async_accept(accept_handler);
// ...
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句