我正在尝试使用 boost::asio 编写我自己的异步网络客户端。我在可用示例中观察到的一件事是不清楚是创建单个 io_service、解析器和查询对象,还是为我创建的每个连接创建这些对象的新实例。
我有一个客户端,它只会联系特定的服务器(唯一的 ip 和主机),但每天会这样做 100 次。
我计划拥有自己的网络类,并且在类本身中,我在构建对象时设置了 io_service、解析器、查询和套接字变量。
myclient::myclient() : io_service_(), resolver_(io_service_),
query_(tcp::v4(), host_, port_), socket_(io_service_)
{
}
//...
resolver.async_resolve_();
io_service_.reset();
io_service_.run_one();
这看起来好吗?