Socket.Disconnect(Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zavře připojení soketu a povolí opakované použití soketu.
public:
void Disconnect(bool reuseSocket);
public void Disconnect(bool reuseSocket);
member this.Disconnect : bool -> unit
Public Sub Disconnect (reuseSocket As Boolean)
Parametry
- reuseSocket
- Boolean
truelze-li tento soket znovu použít po ukončení aktuálního připojení; v opačném případě . false
Výjimky
Objekt Socket byl uzavřen.
Při pokusu o přístup k soketu došlo k chybě.
Příklady
Následující příklad kódu vytvoří soket pro synchronní komunikaci a odešle některá data vzdálenému hostiteli. Potom volá Shutdown, aby zastavila aktivitu odesílání a příjmu, a Disconnect, zavřít připojení soketu.
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");
Poznámky
Pokud používáte protokol orientovaný na připojení, můžete tuto metodu použít k zavření soketu. Tato metoda ukončí připojení a nastaví Connected vlastnost na false. Pokud reuseSocket ano true, můžete soket znovu použít.
Chcete-li zajistit, aby se všechna data odesílala a přijímala před uzavřením soketu, měli byste před voláním Disconnect metody volatShutdown.
Pokud potřebujete volat Disconnect bez prvního volání Shutdown, můžete nastavit DontLingerSocket možnost false a zadat nenulový interval časového limitu, abyste zajistili, že se odesílají data zařazená do fronty pro odchozí přenos.
Disconnect potom zablokuje, dokud nebudou data odeslána nebo dokud nevyprší zadaný časový limit. Pokud nastavíte DontLingerfalse a zadáte nulový časový limit, Close uvolní připojení a automaticky zahodí odchozí data ve frontě.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.