Aracılığıyla paylaş


Socket.Connected Özellik

Tanım

son veya Receive işlem itibarıyla Send bir Socket uzak konağa bağlı olup olmadığını gösteren bir değer alır.

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

Özellik Değeri

true en Socket son işlemden itibaren uzak bir kaynağa bağlıysa; değilse, false.

Örnekler

Aşağıdaki kod örneği uzak uç noktaya bağlanır, özelliği denetler Connected ve bağlantının geçerli durumunu denetler.

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

Açıklamalar

özelliği, Connected son G/Ç işlemi itibarıyla öğesinin bağlantı durumunu Socket alır. döndürdüğünde falseSocket , hiçbir zaman bağlanmadı veya artık bağlı değil. Connectediş parçacığı güvenli değildir; başka bir iş parçacığıyla bağlantısı kesildiğinde Socket bir işlem durdurulduktan sonra döndürülebilirtrue.

özelliğinin Connected değeri, en son işlemden itibaren bağlantının durumunu yansıtır. Bağlantının geçerli durumunu belirlemeniz gerekiyorsa engelleyici olmayan, sıfır bayt gönderme çağrısı yapın. Çağrı başarıyla döndürülüyorsa veya WAEWOULDBLOCK hata kodu (10035) atılıyorsa yuva hala bağlı demektir; aksi takdirde yuva artık bağlı değildir.

Bir Kullanıcı Veri Birimi Protokolü (UDP) yuvasında Connected çağırırsanızConnect, özelliği her zaman döndürürtrue; ancak bu eylem UDP'nin doğal bağlantısız doğasını değiştirmez.

Şunlara uygulanır