boost::asio を使用して独自の非同期ネットワーク クライアントを作成しようとしています。利用可能な例で私が観察していることの 1 つは、単一の io_service、リゾルバー、およびクエリ オブジェクトを作成するか、作成しているすべての接続に対してこれらのオブジェクトの新しいインスタンスを作成するかについて明確でないことです。
特定のサーバー(一意のIPとホスト)にのみ接続するクライアントがありますが、これを1日に数100回行います。
私は独自のネットワーク クラスを持つことを計画しており、クラス自体には、オブジェクトの構築時に io_service、resolver、query、socket 変数がすべて設定されています。
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();
これは大丈夫に見えますか?