Partager via


Socket.Connected Propriété

Définition

Obtient une valeur qui indique si Socket est connecté à un hôte distant depuis la dernière opération Send ou Receive.

public:
 property bool Connected { bool get(); };
public bool Connected { get; }
member this.Connected : bool
Public ReadOnly Property Connected As Boolean

Valeur de propriété

true si Socket était connecté à une ressource distante lors de l'opération la plus récente ; sinon, false.

Exemples

L’exemple de code suivant se connecte à un point de terminaison distant, vérifie la Connected propriété et vérifie l’état actuel de la connexion.

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 );
// .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

Remarques

La Connected propriété obtient l’état de connexion de à Socket partir de la dernière opération d’E/S. Lorsqu’il retourne false, le n’a Socket jamais été connecté ou n’est plus connecté. Connected n’est pas thread-safe ; il peut revenir true après l’abandon d’une opération lorsque le Socket est déconnecté d’un autre thread.

La valeur de la Connected propriété reflète l’état de la connexion à partir de l’opération la plus récente. Si vous devez déterminer l’état actuel de la connexion, effectuez un appel d’envoi de zéro octet non bloquant. Si l’appel retourne correctement ou lève un code d’erreur WAEWOULDBLOCK (10035), le socket est toujours connecté ; sinon, le socket n’est plus connecté.

Si vous appelez Connect sur un socket UDP (User Datagram Protocol), la Connected propriété retourne truetoujours ; toutefois, cette action ne modifie pas la nature sans connexion inhérente d’UDP.

S’applique à