winsock では、指定されたサイズ (これは上限にすぎません) に関係なく、ストリーム ソケットで使用可能なデータが存在するとすぐに、同期recv
と非同期の両方が完了します。WSARecv
これは、ストリームから一定のバイト数を読み取るために、カスタム バッファリングを適用する必要があることを意味します。また、各読み取りが個別にバッファリングされない限り、ダブル バッファリングが発生します。つまり、ソケットごとに実際には 2 つのバッファがあります。
winsock に代わりにデータをバッファリングし、指定されたバイト数が利用可能になったときにのみ操作を完了するように要求する方法はありますか (エラーが発生しない限り)。
編集:この機能は、特に非同期ソケットで機能するはずです。