Socket.Connected Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
public:
property bool Connected { bool get(); };
public bool Connected { get; }
member this.Connected : bool
Public ReadOnly Property Connected As Boolean
Valor de Propriedade
true se o Socket estava ligado a um recurso remoto na operação mais recente; caso contrário, false.
Exemplos
O seguinte exemplo de código liga-se a um endpoint remoto, verifica a Connected propriedade e verifica o estado atual da ligação.
// .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
Observações
A Connected propriedade obtém o estado de ligação da Socket última operação de E/S. Quando regressa false, o Socket ou nunca esteve ligado, ou já não está ligado.
Connected não é seguro para rosca; pode regressar true após uma operação ser abortada, quando o Socket é desligado de outro thread.
O valor da Connected propriedade reflete o estado da ligação na operação mais recente. Se precisares de determinar o estado atual da ligação, faz uma chamada Send sem bloqueio, sem byte. Se a chamada regressar com sucesso ou gerar um código de erro WAEWOULDBLOCK (10035), então o socket continua ligado; caso contrário, a tomada deixa de estar ligada.
Se invocar Connect um socket User Datagram Protocol (UDP), a Connected propriedade devolve truesempre ; no entanto, esta ação não altera a natureza inerentemente sem ligação do UDP.