ソケットを使用してサーバーからデータをダウンロードするc++win32プログラムがあります。
Windowsでソケットを使用する前に、WSAStartupを呼び出す必要があります。MSDNによると、「WSAStartupへの呼び出しが成功するたびにWSACleanupへの呼び出しが必要です。実際のクリーンアップを実行するのは最後のWSACleanup関数呼び出しのみです。」
私にとって最も簡単な方法は、サーバーからデータをダウンロードするたびにWSAStartup/WSACleanupを呼び出すことです。ほとんどの場合、一度に1つの接続しかないため、WSACleanupが実際のクリーンアップを実行します。
だから私は疑問に思っています、WSAStartupとWSACleanupのコストは何ですか?私は実際のクリーンアップを実行することを意味します。WSAStartupとWSACleanupの呼び出しが、ソケット接続全体と比較して短時間しか続かない場合は、簡単な方法を使用できます。そうでない場合は、プログラムを終了するときにのみWSACleanupを呼び出すように注意する必要があります。