呼び出すことで、ソケットの受信バッファーにあるデータの量を知ることができますSocket.IOControl(IOControlCode.DataToRead, null, outValue);
ソケットの送信バッファにあるデータの量を知るのに相当するものはありますか?
帯域幅と遅延に制約のあるネットワークでできるだけ多くの UDP パケットを送信する必要があり、送信バッファーがオーバーフローする状況に陥っているため、なんらかのスロットリングを実装する必要があります。
呼び出すことで、ソケットの受信バッファーにあるデータの量を知ることができますSocket.IOControl(IOControlCode.DataToRead, null, outValue);
ソケットの送信バッファにあるデータの量を知るのに相当するものはありますか?
帯域幅と遅延に制約のあるネットワークでできるだけ多くの UDP パケットを送信する必要があり、送信バッファーがオーバーフローする状況に陥っているため、なんらかのスロットリングを実装する必要があります。
UDP ソケットには送信バッファがありません。UDPのソケット オプションの意味は、SO_SNDBUF
送信できるデータグラムのサイズの制限です。通常、カーネルには NIC ごとにパケット キューがありますが、これはすべてのプロトコルに対して組み合わされており、そのサイズを照会するためのユーザーランド API はありません。IP 層、そしてハードウェアは、パケットをサイレントにドロップできます。TCP はそれを処理する方法を知っていますが、UDP は知りません。したがって、.Net やその他の Microsoft の奇跡がユーザーランド ライブラリにそのようなバッファリングを持たない限り、あなたは運が悪いでしょう。
頼りになるのは、受信者がパケットのドロップ、再送信の要求、TCP へのフォールバックなどについて送信者に通知することです。これは、送信者から何らかの順序付けを行うことも意味します。
お役に立てれば。
ヘッダーを分析できますか?コンテンツの長さに関する情報があるかもしれません。