TCP ソケットからデータを取得する Linux でインターフェイスを作成しています。ユーザーは、受信したデータが格納されるバッファを提供します。提供されたバッファが小さすぎる場合は、エラーを返したいだけです。最初の問題は、バッファが小さすぎたかどうかを判断することです。recv() 関数は、実際にバッファに書き込まれたバイト数を返すだけです。recv() マンページに記載されている MSG_TRUNC フラグを使用しても、同じ結果が返されます。2 番目の問題は、ソケットにまだキューに入れられているデータを破棄することです。したがって、提供された Buffer が小さすぎると判断した場合は、ソケットに残っているものをすべて消去したいだけです。ソケットを閉じて再度開くか、何もなくなるまで受信する以外に、他の方法はありますか? よろしくお願いします
トビー