Socket.Disconnect(Boolean) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Stänger socketanslutningen och tillåter återanvändning av socketen.
public:
void Disconnect(bool reuseSocket);
public void Disconnect(bool reuseSocket);
member this.Disconnect : bool -> unit
Public Sub Disconnect (reuseSocket As Boolean)
Parametrar
- reuseSocket
- Boolean
trueom den här socketen kan återanvändas när den aktuella anslutningen har stängts. annars . false
Undantag
Objektet Socket har stängts.
Ett fel uppstod vid försök att komma åt socketen.
Exempel
I följande kodexempel skapas en socket för synkron kommunikation och vissa data skickas till en fjärrvärd. Den anropar Shutdownsedan , för att stoppa sändnings- och mottagningsaktiviteten och Disconnect, för att stänga socketanslutningen.
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");
Kommentarer
Om du använder ett anslutningsorienterat protokoll kan du använda den här metoden för att stänga socketen. Den här metoden avslutar anslutningen och anger Connected egenskapen till false. Om är reuseSocketkan du dock true återanvända socketen.
För att säkerställa att alla data skickas och tas emot innan socketen stängs bör du anropa Shutdown innan du Disconnect anropar metoden.
Om du behöver anropa Disconnect utan att först anropa Shutdownkan du ange DontLingerSocket alternativet till false och ange ett tidsgränsintervall som inte är noll för att säkerställa att data i kö för utgående överföring skickas.
Disconnect blockerar sedan tills data skickas eller tills den angivna tidsgränsen upphör att gälla. Om du anger DontLinger till false och anger ett tidsgränsintervall på noll släpper Close du anslutningen och tar automatiskt bort utgående köade data.
Note
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden. När du har fått den här koden läser du felkoden Windows Sockets version 2 för en detaljerad beskrivning av felet.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.