Sdílet prostřednictvím


Socket.Disconnect(Boolean) Metoda

Definice

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.

Platí pro