Windows クライアント アプリケーションは、次のboost::asio::ip::tcp::socket::async_connect
ような関数を介して同じ LAN 上のサーバーに接続します。
std::string ip, port;
boost::asio::io_service io;
boost::asio::ip::tcp::socket client( io );
boost::asio::ip::tcp::endpoint endpoint( boost::asio::ip::address::from_string( ip ), port );
// synchronous. (Does not return in problematic case and callback not called)
client.async_connect( endpoint, boost::bind(&CallbackFunction, this, ip, port, boost::asio::placeholders::error ) );
ときどき、非常にランダムに、クライアントを何度再起動しても、1 つのクライアントがサーバーに到達できないことがあります。唯一の解決策は、ワークステーションを再起動することです (Windows 7 または 10)。クライアントとサーバーが同じ LAN 上にあり、LAN 上の他のクライアントがサーバーに接続できることを考えると、この断続的な障害の理由がわかりません。キャッシュされたローカル ルートではないでしょうか。もしそうなら、ターミナルで実行してルートをフラッシュしたり、適切なシステム リソースを解放したりできるコマンドがあります。