Freigeben über


Socket.Connected-Eigenschaft

Ruft einen Wert ab, der angibt, ob ein Socket mit dem Remotehost des letzten Send-Vorgangs oder Receive-Vorgangs verbunden ist.

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

Syntax

'Declaration
Public ReadOnly Property Connected As Boolean
'Usage
Dim instance As Socket
Dim value As Boolean

value = instance.Connected
public bool Connected { get; }
public:
property bool Connected {
    bool get ();
}
/** @property */
public boolean get_Connected ()
public function get Connected () : boolean

Eigenschaftenwert

true, wenn Socket beim letzten Vorgang mit einer Remoteressource verbunden war, andernfalls false.

Hinweise

Die Connected-Eigenschaft ruft den Verbindungszustand des Socket beim letzten E/A-Vorgang ab. Wenn false zurückgegeben wird, war der Socket entweder bisher nicht verbunden oder die Verbindung besteht nicht mehr.

Der Wert der Connected-Eigenschaft gibt den Zustand der Verbindung beim letzten Vorgang wieder. Wenn Sie den aktuellen Zustand der Verbindung bestimmen müssen, führen Sie einen nicht blockierenden Aufruf von Send mit 0 (null) Bytes aus. Wenn der Aufruf erfolgreich beendet wird oder den Fehlercode WAEWOULDBLOCK (10035) auslöst, ist der Socket noch verbunden. Andernfalls ist der Socket nicht mehr verbunden.

Wenn Sie Connect für einen UDP (User Datagram Protocol)-Socket aufrufen, gibt die Connected-Eigenschaft immer true zurück. Nichtsdestotrotz ist UDP ein verbindungsloses Protokoll.

Beispiel

Im folgenden Codebeispiel wird eine Verbindung mit einem Remoteendpunkt hergestellt, die Connected-Eigenschaft und anschließend der aktuelle Zustand der Verbindung überprüft.

    ' .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 'ConnectAndCheck
// .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);
client->Connect( anEndPoint );
if (  !client->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
   
// This is how you can determine whether a socket is still connected.
bool blockingState = client->Blocking;
try
{
   array<Byte>^tmp = gcnew array<Byte>(1);
   client->Blocking = false;
   client->Send( tmp, 0, static_cast<SocketFlags>(0) );
   Console::WriteLine( L"Connected!" );
}
catch ( SocketException^ e ) 
{
   // 10035 == WSAEWOULDBLOCK
   if ( e->NativeErrorCode.Equals( 10035 ) )
   {
      Console::WriteLine( "Connected from an exception!" );
   }
   else
   {
      Console::WriteLine( "Disconnected: {0}!", e->NativeErrorCode );
   }
}
finally
{
   client->Blocking = blockingState;
}

Console::WriteLine( "Connected: {0}", client->Connected );

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

Socket-Klasse
Socket-Member
System.Net.Sockets-Namespace