Socket.Disconnect(Boolean) 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.
Yuva bağlantısını kapatır ve yuvanın yeniden kullanılmasına izin verir.
public:
void Disconnect(bool reuseSocket);
public void Disconnect(bool reuseSocket);
member this.Disconnect : bool -> unit
Public Sub Disconnect (reuseSocket As Boolean)
Parametreler
- reuseSocket
- Boolean
true geçerli bağlantı kapatıldıktan sonra bu yuva yeniden kullanılabilirse; aksi takdirde , false.
Özel durumlar
Socket Nesne kapatıldı.
Yuvaya erişmeye çalışılırken bir hata oluştu.
Örnekler
Aşağıdaki kod örneği, zaman uyumlu iletişim için bir yuva oluşturur ve bazı verileri uzak bir konağa gönderir. Ardından gönderme ve alma etkinliğini Disconnectdurdurmak için ve yuva bağlantısını kapatmak için öğesini çağırırShutdown.
IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
Socket client = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
// Connect the socket to the remote end point.
client.Connect(ipEndPoint);
// Send some data to the remote device.
string data = "This is a string of data <EOF>";
byte[] buffer = Encoding.ASCII.GetBytes(data);
int bytesTransferred = client.Send(buffer);
// Write to the console the number of bytes transferred.
Console.WriteLine("{0} bytes were sent.\n", bytesTransferred);
// Release the socket.
client.Shutdown(SocketShutdown.Both);
client.Disconnect(true);
if (client.Connected)
Console.WriteLine("We're still connnected");
else
Console.WriteLine("We're disconnected");
Açıklamalar
Bağlantı odaklı bir protokol kullanıyorsanız, yuvayı kapatmak için bu yöntemi kullanabilirsiniz. Bu yöntem bağlantıyı sonlandırır ve özelliğini olarak falseayarlarConnected. Ancak, ise reuseSockettrueyuvayı yeniden kullanabilirsiniz.
Yuva kapatılana kadar tüm verilerin gönderilip alındığından emin olmak için yöntemini çağırmadan Disconnect önce çağırmalısınızShutdown.
çağrısı Shutdownyapmadan aramanız Disconnect gerekirse, giden iletim için kuyruğa alınan verilerin gönderilmesini false sağlamak için seçeneğini olarak ayarlayabilir DontLingerSocket ve sıfır olmayan bir zaman aşımı aralığı belirtebilirsiniz.
Disconnect ardından veriler gönderilene kadar veya belirtilen zaman aşımı süresi dolana kadar engeller. olarak ayarlayıp DontLingerfalse sıfır zaman aşımı aralığı belirtirseniz, Close bağlantıyı serbest bırakır ve giden kuyruğa alınan verileri otomatik olarak atar.
Uyarı
bir SocketExceptionalırsanız, özelliğini kullanarak SocketException.ErrorCode belirli bir hata kodunu alın. 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.
Uyarı
Bu üye, uygulamanızda ağ izlemeyi etkinleştirdiğinizde izleme bilgilerini döndürür. Daha fazla bilgi için bkz. .NET Framework'te Ağ İzleme.