Socket.Connected Vlastnost
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í.
public:
property bool Connected { bool get(); };
public bool Connected { get; }
member this.Connected : bool
Public ReadOnly Property Connected As Boolean
Hodnota vlastnosti
true
Socket pokud byl připojen ke vzdálenému prostředku jako poslední operace; v opačném případě false.
Příklady
Následující příklad kódu se připojí ke vzdálenému koncovému bodu, zkontroluje Connected vlastnost a zkontroluje aktuální stav připojení.
// .Connect throws an exception if unsuccessful
client.Connect(anEndPoint);
// This is how you can determine whether a socket is still connected.
bool blockingState = client.Blocking;
try
{
byte [] tmp = new byte[1];
client.Blocking = false;
client.Send(tmp, 0, 0);
Console.WriteLine("Connected!");
}
catch (SocketException e)
{
// 10035 == WSAEWOULDBLOCK
if (e.NativeErrorCode.Equals(10035))
{
Console.WriteLine("Still Connected, but the Send would block");
}
else
{
Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode);
}
}
finally
{
client.Blocking = blockingState;
}
Console.WriteLine("Connected: {0}", client.Connected);
' .Connect throws an exception if unsuccessful
client.Connect(anEndPoint)
' This is how you can determine whether a socket is still connected.
Dim blockingState As Boolean = client.Blocking
Try
Dim tmp(0) As Byte
client.Blocking = False
client.Send(tmp, 0, 0)
Console.WriteLine("Connected!")
Catch e As SocketException
' 10035 == WSAEWOULDBLOCK
If e.NativeErrorCode.Equals(10035) Then
Console.WriteLine("Still Connected, but the Send would block")
Else
Console.WriteLine("Disconnected: error code {0}!", e.NativeErrorCode)
End If
Finally
client.Blocking = blockingState
End Try
Console.WriteLine("Connected: {0}", client.Connected)
End Sub
Poznámky
Vlastnost Connected získá stav Socket připojení k poslední vstupně-výstupní operaci. Když se vrátí false, Socket buď nebyl nikdy připojen, nebo již není připojen.
Connected není bezpečná pro přístup z více vláken; může se vrátit true po přerušení operace při Socket odpojení od jiného vlákna.
Hodnota Connected vlastnosti odráží stav připojení jako poslední operace. Pokud potřebujete určit aktuální stav připojení, proveďte neblokující volání s nulovým bajtem Odeslat. Pokud volání úspěšně vrátí nebo vyvolá kód chyby WAEWOULDBLOCK (10035), pak je soket stále připojen; jinak se soket už nepřipojí.
Pokud voláte Connect soket UDP (User Datagram Protocol), Connected vlastnost vždy vrátí true; tato akce však nezmění podstatu připojení bez připojení UDP.