MSDN ページを読むと、ソケット トランスポート層に内部バッファーがない場合、Send がブロックされることは明らかです。NoBufferSpaceAvailable エラーが発生したくないので、これは実際には良いことです。私の理解では、トランスポート バッファ スペースは非常に大きいですが、Send がこれらのエラーを防ぐために物事を調整する場合、私は満足しています。
ただし、送信がブロックされる原因が他にあるかどうかは明確ではありません。私の推測では、送信の確認応答を待ってブロックすることはなく、Send はデータをトランスポート バッファーにキューに入れて返すだけです。
非常に悪いことは、送信が完了するまで特定のソケットが実際に完全にブロックされるまで送信が実際にブロックされる場合です。その場合、1000 件中 1 件の接続速度が遅いと、送信プロセス全体が遅くなる可能性があります。その場合、SendAsync は本当に必須です。
誰もこれについてもっと詳細を持っていますか?