【发布时间】:2012-02-23 19:14:24
【问题描述】:
我是 Boost Asio 库的新手,我的要求是构建一个服务器,它应该异步监听 600 个不同的端口(TCP 通信)。有人可以建议我使用 Boost Asio 实现这一目标的聪明方法。我尝试使用 Boost Asio 文档中提供的回显服务器示例,但不太了解 boost::asio::io_service io_service;
using namespace std; // For atoi.
for(long port=50000;port<=50600;port++)
{
server s(io_service, port);
io_service.run();
}
有人可以解释一下吗?
【问题讨论】:
-
'我的要求是建立一个服务器,它应该监听 600 个不同的端口' - 你确定这是你想要做的吗?
-
是的 Martin,它与模拟设备有关,我有 600 个模拟设备,因此我需要为每个设备单独连接。
-
@user1229153 您可以在单个端口上接受与单个服务器的任意数量的连接。
-
@spencercw,但它会帮助我在打开所有连接的情况下进行异步通信吗?如果您能提供任何方便的链接,我将不胜感激。
-
@user1229153 绝对。阻塞 I/O 通常是一个坏主意 (IMO),当然,当您有 600 个同时连接时,您希望异步执行此操作。查看chat examples。您可以忽略与聊天相关的内容,但服务器管理多个会话的概念非常有效。
标签: c++ boost boost-asio