Socket.Poll Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| Poll(TimeSpan, SelectMode) |
Определяет состояние Socketобъекта . |
| Poll(Int32, SelectMode) |
Определяет состояние Socketобъекта . |
Poll(TimeSpan, SelectMode)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Определяет состояние Socketобъекта .
public:
bool Poll(TimeSpan timeout, System::Net::Sockets::SelectMode mode);
public bool Poll(TimeSpan timeout, System.Net.Sockets.SelectMode mode);
member this.Poll : TimeSpan * System.Net.Sockets.SelectMode -> bool
Public Function Poll (timeout As TimeSpan, mode As SelectMode) As Boolean
Параметры
- timeout
- TimeSpan
Время ожидания ответа.
- mode
- SelectMode
Одно из значений SelectMode .
Возвращаемое значение
Состояние Socket на основе значения режима опроса, переданного в параметре mode . Возвращает значение true , если любое из следующих условий возникает до timeout истечения срока действия, в противном случае false.
- Для SelectReadнего возвращается
true, если Listen() он был вызван, и подключение ожидается, если данные доступны для чтения, или если подключение закрыто, сброс или завершено. - Для SelectWriteэтого возвращается
true, если обработка Connect и подключение выполнено успешно или можно ли отправлять данные. - Для SelectErrorэтого возвращается
true, если обработка Connect не блокируется и подключение не выполнено, или если OutOfBandInline данные не заданы и не доступны. - В противном случае возвращается значение
false.
Исключения
timeout меньше -1 миллисекундах или больше MaxValue миллисекундах.
Произошла ошибка при попытке доступа к сокету.
Он Socket был закрыт.
Применяется к
Poll(Int32, SelectMode)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Определяет состояние Socketобъекта .
public:
bool Poll(int microSeconds, System::Net::Sockets::SelectMode mode);
public bool Poll(int microSeconds, System.Net.Sockets.SelectMode mode);
member this.Poll : int * System.Net.Sockets.SelectMode -> bool
Public Function Poll (microSeconds As Integer, mode As SelectMode) As Boolean
Параметры
- microSeconds
- Int32
Время ожидания ответа в микросекундах.
- mode
- SelectMode
Одно из значений SelectMode .
Возвращаемое значение
Состояние Socket на основе значения режима опроса, переданного в параметре mode .
- Для SelectReadнего возвращается
true, если Listen() он был вызван, и подключение ожидается, если данные доступны для чтения, или если подключение закрыто, сброс или завершено. - Для SelectWriteэтого возвращается
true, если обработка Connect и подключение выполнено успешно или можно ли отправлять данные. - Для SelectErrorэтого возвращается
true, если обработка Connect не блокируется и подключение не выполнено, или если OutOfBandInline данные не заданы и не доступны. - В противном случае возвращается значение
false.
Исключения
Параметр mode не является одним из значений SelectMode .
Произошла ошибка при попытке доступа к сокету. См. приведенные ниже замечания.
Он Socket был закрыт.
Примеры
В следующем примере кода создается сокет, подключается к серверу и используется Poll для проверки состояния сокета.
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp );
// Connects to host using IPEndPoint.
s.Connect(EPhost);
if (!s.Connected)
{
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if(s.Poll(-1, SelectMode.SelectWrite)){
Console.WriteLine("This Socket is writable.");
}
else if (s.Poll(-1, SelectMode.SelectRead)){
Console.WriteLine("This Socket is readable." );
}
else if (s.Poll(-1, SelectMode.SelectError)){
Console.WriteLine("This Socket has an error.");
}
'Creates the Socket for sending data over TCP.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
Console.WriteLine("This Socket is writable.")
Else
If s.Poll(- 1, SelectMode.SelectRead) Then
Console.WriteLine(("This Socket is readable. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
End If
Комментарии
Метод Poll проверяет состояние Socketобъекта . Укажите SelectMode.SelectRead параметр для selectMode определения Socket возможности чтения. Укажите SelectMode.SelectWrite , чтобы определить, является ли запись доступной Socket для записи. Используется SelectMode.SelectError для обнаружения условия ошибки.
Poll блокирует выполнение до указанного периода времени, измеряемого в microseconds, истекающего или доступного данных.
microSeconds Задайте для параметра отрицательное целое число, если вы хотите ждать неограниченное время ответа. Если вы хотите проверить состояние нескольких сокетов, можно использовать Select этот метод.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Замечание
Этот метод не может обнаружить определенные типы проблем подключения, например сломанный сетевой кабель, или что удаленный узел был закрыт неграмотно. Для обнаружения таких ошибок необходимо попытаться отправить или получить данные.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.