Socket.Shutdown(SocketShutdown) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Socket での送受信を無効にします。
public:
void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown (System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)
パラメーター
- how
- SocketShutdown
許可されなくなる操作を指定する SocketShutdown 値の 1 つ。
例外
ソケットへのアクセスを試行しているときにエラーが発生しました。
Socket が閉じられました。
例
次のコード例では、 を使用 Shutdown して を Socket無効にします。
try
{
aSocket->Shutdown(SocketShutdown::Both);
aSocket->Close();
}
catch (...)
{
aSocket->Close();
throw;
}
if ( aSocket->Connected )
{
Console::WriteLine( "Winsock error: {0}", Convert::ToString(
System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
aSocket.Close();
}
Try
aSocket.Shutdown(SocketShutdown.Both)
Finally
aSocket.Close()
End Try
End Sub
注釈
接続指向 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 エラー コード のドキュメントを参照してください。
Note
このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。
適用対象
こちらもご覧ください
.NET