提升 ASIO async_tcp_echo_server的例子

boost asio async_tcp_echo_server example

本文关键字:server tcp ASIO async 提升 echo      更新时间:2023-10-16

我正在从提升站点查看此示例(出于学习目的(:

https://www.boost.org/doc/libs/1_66_0/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp

总的来说,我添加了一些线程来运行io_context。

我实现的行为是,我有多个线程侦听套接字,每个线程等待工作并执行整个工作 a-z,因此,如果我的所有线程都忙于工作并且另一个客户端向服务器发送一些文本,他将挂起,直到某个线程再次可用。

我希望 1 个线程侦听套接字并将所有工作排队,以及一个线程池来处理所有工作。

如果我理解正确,我不需要在 main 中创建一个线程池,而是保持原样,只有主线程接受连接并使用服务器中的线程池进行另一个io_context,并以某种方式使所有会话都使用此池,我不知道如何写这个。

我仍然不明白如果我不将其传递给会话,每个会话如何知道它使用哪个io_context。

套接字存储执行器。该执行人指的是io_context

在较旧的 Boost 版本中,套接字将直接存储对io_service的引用。