Socket.Disconnect(Boolean) Methode

Definition

Schließt die Socketverbindung und ermöglicht die Wiederverwendung des Sockets.

public:
 void Disconnect(bool reuseSocket);
public void Disconnect(bool reuseSocket);
member this.Disconnect : bool -> unit
Public Sub Disconnect (reuseSocket As Boolean)

Parameter

reuseSocket
Boolean

truewenn dieser Socket nach dem Schließen der aktuellen Verbindung wiederverwendet werden kann; andernfalls . false

Ausnahmen

Das Socket Objekt wurde geschlossen.

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Beispiele

Im folgenden Codebeispiel wird ein Socket für die synchrone Kommunikation erstellt und einige Daten an einen Remotehost gesendet. Anschließend wird aufgerufen Shutdown, um die Sende- und Empfangsaktivität zu beenden und Disconnectdie Socketverbindung zu schließen.

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");

Hinweise

Wenn Sie ein verbindungsorientiertes Protokoll verwenden, können Sie diese Methode verwenden, um den Socket zu schließen. Diese Methode beendet die Verbindung und legt die Connected Eigenschaft auf false. Wenn reuseSocket ja true, können Sie den Socket jedoch wiederverwenden.

Um sicherzustellen, dass alle Daten gesendet und empfangen werden, bevor der Socket geschlossen wird, sollten Sie vor dem Aufrufen der Shutdown Methode aufrufenDisconnect.

Wenn Sie ohne ersten Anruf anrufen Disconnect müssen, können Sie dieShutdownDontLingerOption festlegen Socket und ein Timeoutintervall ohne Null angeben, um sicherzustellen, dass die Für ausgehende Übertragung in die Warteschlange eingereihten Daten gesendet falsewerden. Disconnect dann wird blockiert, bis die Daten gesendet werden oder bis das angegebene Timeout abläuft. Wenn Sie ein DontLinger Timeoutintervall null festlegen false und angeben, Close wird die Verbindung losgelassen und ausgehende Daten in der Warteschlange automatisch verworfen.

Note

Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.

Note

Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network-Ablaufverfolgung in .NET Framework.

Gilt für: