Socket.Disconnect(Boolean) Methode

Definitie

Sluit de socketverbinding en maakt hergebruik van de socket mogelijk.

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

Parameters

reuseSocket
Boolean

true als deze socket opnieuw kan worden gebruikt nadat de huidige verbinding is gesloten; anders, false.

Uitzonderingen

Het Socket object is gesloten.

Er is een fout opgetreden bij het openen van de socket.

Voorbeelden

In het volgende codevoorbeeld wordt een socket gemaakt voor synchrone communicatie en worden sommige gegevens naar een externe host verzonden. Vervolgens wordt het aanroepen Shutdown, om de activiteit voor verzenden en ontvangen te stoppen en Disconnectom de socketverbinding te sluiten.

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

Opmerkingen

Als u een verbindingsgeoriënteerd protocol gebruikt, kunt u deze methode gebruiken om de socket te sluiten. Deze methode beëindigt de verbinding en stelt de Connected eigenschap in op false. Als dat het zo istrue, reuseSocket kunt u de socket echter opnieuw gebruiken.

Als u ervoor wilt zorgen dat alle gegevens worden verzonden en ontvangen voordat de socket wordt gesloten, moet u aanroepen voordat u de Disconnect methode aanroeptShutdown.

Als u wilt bellen zonder eerst aan te roepen DisconnectShutdown, kunt u de DontLingerSocket optie false instellen en een time-outinterval voor niet-nul opgeven om ervoor te zorgen dat gegevens in de wachtrij voor uitgaande verzending worden verzonden. Disconnect blokkeert vervolgens totdat de gegevens worden verzonden of totdat de opgegeven time-out verloopt. Als u een time-outinterval van nul instelt en opgeeft DontLingerfalse , Close wordt de verbinding vrijgegeven en worden uitgaande gegevens in de wachtrij automatisch verwijderd.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Note

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Van toepassing op