Udostępnij za pośrednictwem


Socket.Poll Metoda

Definicja

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 true wartość , 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 true wartość , 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 true wartość , 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 true wartość , 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 true wartość , 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 true wartość , 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.

Zobacz też

Dotyczy