Socket.Poll Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
| Nazwa | Opis |
|---|---|
| Poll(TimeSpan, SelectMode) |
Określa stan elementu Socket. |
| Poll(Int32, SelectMode) |
Określa stan elementu Socket. |
Poll(TimeSpan, SelectMode)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Określa stan elementu 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
Parametry
- timeout
- TimeSpan
Czas oczekiwania na odpowiedź.
- mode
- SelectMode
SelectMode Jedna z wartości.
Zwraca
Stan Socket na podstawie wartości trybu sondowania przekazanej w parametrze mode . Zwraca wartość true , jeśli którekolwiek z poniższych warunków wystąpi przed wygaśnięciem timeout , w przeciwnym razie false.
- W przypadku SelectReadpolecenia funkcja zwraca
truewartość , jeśli Listen() wywołano wywołanie, a połączenie oczekuje, jeśli dane są dostępne do odczytu lub czy połączenie zostało zamknięte, zresetowane lub zakończone. - W przypadku SelectWritepolecenia funkcja zwraca
truewartość , jeśli przetwarzanie elementu Connect i połączenie zakończyło się pomyślnie lub jeśli dane mogą być wysyłane. - W przypadku SelectErrorpolecenia funkcja zwraca
truewartość , jeśli przetwarzanie Connect elementu, które nie blokuje, a połączenie nie powiodło się lub jeśli OutOfBandInline nie zostało ustawione, a dane poza pasmem są dostępne. - W przeciwnym razie zwraca wartość
false.
Wyjątki
timeout wartość jest mniejsza niż -1 milisekund lub większa niż MaxValue milisekundy.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Dotyczy
Poll(Int32, SelectMode)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Określa stan elementu 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
Parametry
- microSeconds
- Int32
Czas oczekiwania na odpowiedź w mikrosekundach.
- mode
- SelectMode
SelectMode Jedna z wartości.
Zwraca
Stan Socket na podstawie wartości trybu sondowania przekazanej w parametrze mode .
- W przypadku SelectReadpolecenia funkcja zwraca
truewartość , jeśli Listen() wywołano wywołanie, a połączenie oczekuje, jeśli dane są dostępne do odczytu lub czy połączenie zostało zamknięte, zresetowane lub zakończone. - W przypadku SelectWritepolecenia funkcja zwraca
truewartość , jeśli przetwarzanie elementu Connect i połączenie zakończyło się pomyślnie lub jeśli dane mogą być wysyłane. - W przypadku SelectErrorpolecenia funkcja zwraca
truewartość , jeśli przetwarzanie Connect elementu, które nie blokuje, a połączenie nie powiodło się lub jeśli OutOfBandInline nie zostało ustawione, a dane poza pasmem są dostępne. - W przeciwnym razie zwraca wartość
false.
Wyjątki
Parametr mode nie jest jedną z SelectMode wartości.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda. Zobacz uwagi poniżej.
Element Socket został zamknięty.
Przykłady
Poniższy przykład kodu tworzy gniazdo, łączy się z serwerem i używa Poll go do sprawdzania stanu gniazda.
//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
Uwagi
Metoda Poll sprawdza stan Socket. Określ SelectMode.SelectRead parametr , selectMode aby określić, czy Socket parametr jest czytelny. Określ SelectMode.SelectWrite , czy element Socket jest zapisywalny. Użyj polecenia SelectMode.SelectError , aby wykryć warunek błędu.
Poll zablokuje wykonywanie, dopóki określony okres, mierzony w microseconds, upłynął lub dane staną się dostępne.
microSeconds Ustaw parametr na ujemną liczbę całkowitą, jeśli chcesz poczekać na czas nieokreślony na odpowiedź. Jeśli chcesz sprawdzić stan wielu gniazd, możesz użyć Select metody .
Uwaga / Notatka
Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API windows Sockets w wersji 2 , aby uzyskać szczegółowy opis błędu.
Uwaga / Notatka
Ta metoda nie może wykryć niektórych rodzajów problemów z połączeniem, takich jak uszkodzony kabel sieciowy lub że host zdalny został zamknięty nieprzyzwoicie. Aby wykryć tego rodzaju błędy, należy spróbować wysłać lub odebrać dane.
Uwaga / Notatka
Ten członek generuje dane śledzenia po włączeniu śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w programie .NET Framework.