System.Net.Sockets.Socket クラス

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

このクラスには Socket 、ネットワーク通信用の豊富なメソッドとプロパティのセットが用意されています。 この Socket クラスを使用すると、列挙体に記載されている任意の通信プロトコルを使用して、同期データ転送と非同期データ転送の両方を ProtocolType 実行できます。

このクラスは Socket 、非同期メソッドの .NET 名前付けパターンに従います。 たとえば、同期 Receive メソッドは非同期 ReceiveAsync バリアントに対応します。

同期操作モードには、次のメソッドを使用します。

  • TCP などの接続指向プロトコルを使用している場合、サーバーはメソッドを使用して接続を Listen リッスンできます。 このメソッドは Accept 、受信した接続要求を処理し、リモート ホストとデータを通信するために使用できる要求を返 Socket します。 これを使用して、Socketor Receive メソッドをSend呼び出します。 Bindローカル IP アドレスとポート番号を指定する場合は、メソッドを呼び出す前にメソッドを呼び出Listenします。 基になるサービス プロバイダーに空きポートを割り当てる場合は、0 のポート番号を使用します。 リッスンしているホストに接続する場合は、メソッドを Connect 呼び出します。 データを通信するには、or Receive メソッドをSend呼び出します。
  • UDP などのコネクションレス プロトコルを使用している場合は、接続をリッスンする必要はまったくありません。 受信データグラムを ReceiveFrom 受け入れるメソッドを呼び出します。 このメソッドを SendTo 使用して、リモート ホストにデータグラムを送信します。

通信を非同期的に処理するには、次のメソッドを使用します。

  • TCP などの接続指向プロトコルを使用している場合は、リッスンしているホストとの接続に使用 ConnectAsync します。 データを非同期的に使用 SendAsync または ReceiveAsync 通信する。 受信接続要求は、次を使用して AcceptAsync処理できます。
  • UDP などのコネクションレス プロトコルを使用している場合は、データグラムの送信やReceiveFromAsyncデータグラムの受信に使用SendToAsyncできます。

1 つのソケットに対して複数の非同期操作を実行する場合、それらが開始された順序で必ずしも完了するとは限りません。

データの送受信が完了したら、メソッドを Shutdown 使用して Socket. 呼び出した Shutdown後、メソッドを Close 呼び出して、に関連付けられているすべてのリソースを解放します Socket

このSocketクラスを使用すると、メソッドを使用してSetSocketOption構成できますSocket。 メソッドを使用してこれらの設定を取得します GetSocketOption