Socket.Connected Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
public:
property bool Connected { bool get(); };
public bool Connected { get; }
member this.Connected : bool
Public ReadOnly Property Connected As Boolean
Значение свойства
true
Socket Значение , если он был подключен к удаленному ресурсу по состоянию на последнюю операцию; в противном случае false.
Примеры
Следующий пример кода подключается к удаленной конечной точке, проверяет 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
Комментарии
Свойство Connected получает состояние Socket подключения по состоянию на последнюю операцию ввода-вывода. Когда он возвращается false, Socket он либо никогда не подключен, либо больше не подключен.
Connected не является потокобезопасной; он может вернуться true после прерывания операции при Socket отключении от другого потока.
Значение Connected свойства отражает состояние соединения по состоянию на последнюю операцию. Если необходимо определить текущее состояние подключения, выполните неблокировку, вызов отправки с нуля байтов. Если вызов возвращается успешно или вызывает код ошибки WAEWOULDBLOCK (10035), сокет по-прежнему подключен; в противном случае сокет больше не подключен.
При вызове Connect сокета протокола пользовательской диаграммы данных (UDP) свойство всегда возвращаетсяtrue; Connected однако это действие не изменяет присущий UDP характер без подключения.