Socket.Shutdown(SocketShutdown) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
bir Socketüzerinde gönderme ve almaları devre dışı bırakır.
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)
Parametreler
- how
- SocketShutdown
SocketShutdown Artık izin verilmeyen işlemi belirten değerlerden biri.
Özel durumlar
Yuvaya erişmeye çalışılırken bir hata oluştu.
Kapatılmış Socket .
Örnekler
Aşağıdaki kod örneği, öğesini devre dışı bırakmak Socketiçin kullanırShutdown.
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
Açıklamalar
Bağlantı odaklı Socketkullanırken, kapatmadan önce her zaman yöntemini çağırın ShutdownSocket. Bu, tüm verilerin kapatılana kadar bağlı yuvada gönderilmesini ve alınmasını sağlar.
Close ile ilişkili tüm yönetilen ve yönetilmeyen kaynakları boşaltmak için yöntemini çağırınSocket. Kapattıktan sonra yeniden Socket kullanmayın.
Aşağıdaki tabloda parametresi için how
geçerli olan numaralandırma değerleri gösterilmektedirSocketShutdown.
Değer | Açıklama |
---|---|
Gönder | Bu Socketüzerinde göndermeyi devre dışı bırakın. |
Al | Bu Socketüzerinde almayı devre dışı bırakın. |
Her İkisi | Bu Socketüzerinde hem göndermeyi hem de almayı devre dışı bırakın. |
ayarı how
, Send öğesini izleyen çağrılara Send izin verilmediğini belirtir. Bağlantısız Socketkullanıyorsanız belirtmenin Send hiçbir etkisi olmaz.
ayarı how
, Receive öğesini izleyen çağrılara Receive izin verilmediğini belirtir. Bunun alt protokol katmanları üzerinde hiçbir etkisi yoktur. Bağlantı odaklı bir protokol kullanıyorsanız, çağrısından sonra Shutdown aşağıdaki koşullardan biri varsa bağlantı sonlandırılır:
Veriler gelen ağ arabelleğinde alınmayı bekliyor.
Daha fazla veri geldi.
Bağlantısız bir protokol kullanıyorsanız, veri birimleri kabul edilir ve kuyruğa alınmış olur. Ancak, ek gelen veri birimleri için kullanılabilir arabellek alanı yoksa, bunlar atılır ve gönderene hata döndürülür. Bağlantısız Socket bir cihazda kullanılması Shutdown önerilmez.
ayarı how
Both , yukarıda açıklandığı gibi hem gönderme hem de almaları devre dışı bırakır.
Not
yöntemini çağırırken Shutdown bir SocketException alırsanız, belirli bir hata kodunu almak için özelliğini kullanınSocketException.ErrorCode. Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.
Not
Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.