.NET ソケットの実装に関していくつかのポイントがあるので、それらを順番に述べます。
- 私の理解では、Socket のインスタンスは内部クラスの実装に変更可能なサイズのバッファーがあり、実際にはバイトのキューであり、アプリケーションで宣言および定義するアプリケーション バッファーとも異なります。
stream
socket type:および protocol type:を使用する同期モードで、(プロセスをブロックしている)tcp
メソッドを使用する場合、Receive
アプリケーション バイト バッファーは、宣言したアプリケーション バイト バッファーと同じサイズのチャンクでソケット バッファーを実際にデキューします。アプリケーションで定義し、関数に送信したアプリケーション バイト バッファにこのチャンクを割り当てますReceive
。- 上記が当てはまる場合、バイト バッファの長さがソケット キュー内のバイト要素よりも大きい場合はどうなるでしょうか。
- また、2 が正しい場合
Send
、ソケットのメソッドは、アプリケーション バッファではなく、エンドポイントに接続されたホスト ソケット バッファにデータを送信します。 - 最後に、Socket メソッドは非ブロッキングであるため、基になる実装でスレッドが作成され、メソッドが呼び出され
Accept
たときにデキューされる独自のキューがあります。Accept
これまでの私の理解が正しいかどうか、またはほとんど間違っていて修正が必要かどうかを確認するために、これらすべてをお願いします。