gpt4 book ai didi

c++ - Boost Asio 将接受的套接字从一个 io_service 传输到另一个 io_service

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:41 25 4
gpt4 key购买 nike

我正在编写多线程 TCP 服务器,基于应用程序设计,我需要有多个线程,每个线程都有 io_service

通过该设计,我需要接受来自一个Thread/io_service 的连接,进行身份验证过程(基于应用程序逻辑),然后将接受的连接传输到另一个Thread/io_service 开始从经过身份验证的连接读取长数据。

所以问题是如何将接受的连接从一个 io_service 转移到另一个 io_service

这有什么标准功能吗?

谢谢

最佳答案

打算根据一个大概的思路来回答。伪代码:

create_io_service_pool(...);
tcp::acceptor tcp_acceptor(accept_io_service, tcp::endpoint(tcp::v4(), 6069));
while (true) {
auto csocket = tcp::socket(get_io_service_from_pool());
tcp_acceptor.accept(csocket);
/// Any async operation afterwords on csocket would be handled by the
/// io_service it got from `get_io_service_from_pool` function
/// which you can design as you wish..may be round-robin one for simplicity
}

我只是希望这就是您要找的。

关于c++ - Boost Asio 将接受的套接字从一个 io_service 传输到另一个 io_service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39237335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com