Aracılığıyla paylaş


Socket.Disconnect(Boolean) Yöntem

Tanım

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.

Şunlara uygulanır