具有boost.Asio的多线程服务器

时间:2012-12-28 21:45:39

标签: c++ multithreading sockets boost boost-asio

我正在尝试创建一个接收许多连接并处理它的服务器。 我认为如果我把每个连接都放在一个线程中会更好,但我不知道怎么做,因为我仍然不知道我怎么告诉我的班级“我收到一个新的连接,把它放到一个线程中”。我很困惑,仍然没有在这里的其他帖子中找到它。求你帮帮我。

obs。:我有一个提示创建了一堆连接,所以等待客户端,但我不想这样做,我想创建一个连接只有有人试图进入我的服务器

2 个答案:

答案 0 :(得分:5)

Boost :: Asio文档的asynchronous TCP daytime server tutorial描述了如何编写这样的服务器。

此外,其余所有内容中都有多个examples

答案 1 :(得分:1)

查看asio文档中的示例。以下示例执行您想要的操作: http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/example/echo/blocking_tcp_echo_server.cpp 这会为每个连接创建一个新线程并使用阻塞调用。

请注意,您还可以使用异步调用并在一个线程中执行所有操作。这方面的例子是: http://www.boost.org/doc/libs/1_52_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp