英語で読む

次の方法で共有


Socket.Shutdown(SocketShutdown) メソッド

定義

Socket での送受信を無効にします。

C#
public void Shutdown(System.Net.Sockets.SocketShutdown how);

パラメーター

how
SocketShutdown

許可されなくなる操作を指定する SocketShutdown 値の 1 つ。

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

次のコード例では、 を使用 Shutdown して を Socket無効にします。

C#
try
{
    aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
    aSocket.Close();
}

注釈

接続指向 Socketを使用する場合は、 を閉じる前に常に メソッドをShutdownSocket呼び出します。 これにより、接続されているソケットが閉じられる前にすべてのデータが送受信されます。

Close 関連付けられているすべてのマネージド リソースとアンマネージド リソースを解放するには、 メソッドを呼び出します Socket。 閉じた後に を Socket 再利用しないでください。

次の表は、 パラメーターに SocketShutdown 対して有効な列挙値を how 示しています。

[値] 説明
Send この Socketで送信を無効にします。
受信 この Socketで受信を無効にします。
両方 この Socketで送受信の両方を無効にします。

を に設定 how すると Send 、 への後続の呼び出しが許可されないことが Send 指定されます。 コネクションレス Socketを使用している場合、 を Send 指定しても効果はありません。

を に設定 how すると Receive 、 への後続の呼び出しが許可されないことが Receive 指定されます。 これは、下位のプロトコル レイヤーには影響しません。 接続指向プロトコルを使用している場合、 の呼び出し Shutdown 後に次のいずれかの条件が存在する場合、接続は終了します。

  • データは受信を待機している受信ネットワーク バッファー内にあります。

  • より多くのデータが到着しました。

コネクションレス プロトコルを使用している場合は、データグラムが受け入れられ、キューに入れられます。 ただし、追加の受信データグラムに使用できるバッファー領域がない場合は、破棄され、送信者にエラーは返されません。 コネクションレスSocketで を使用Shutdownすることはお勧めしません。

を に設定 how すると Both 、上記のように送受信の両方が無効になります。

注意

メソッドを呼び出すときに をSocketExceptionShutdown受け取った場合は、 プロパティをSocketException.ErrorCode使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 API エラー コード のドキュメントを参照してください。

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

こちらもご覧ください