Udostępnij za pośrednictwem


Socket.Poll Metoda

Definicja

Przeciążenia

Poll(TimeSpan, SelectMode)

Określa stan obiektu Socket.

Poll(Int32, SelectMode)

Określa stan obiektu Socket.

Poll(TimeSpan, SelectMode)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Określa stan obiektu 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

Jedna z SelectMode wartości.

Zwraca

Stan elementu 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 SelectReadprogramu zwraca true wartość , jeśli Listen() została wywołana, a połączenie jest oczekujące, jeśli dane są dostępne do odczytu lub czy połączenie zostało zamknięte, zresetowane lub zakończone.
  • W przypadku SelectWriteelementu funkcja zwraca wartość true , jeśli przetwarzanie elementu Connect i połączenie zakończyło się pomyślnie lub jeśli dane mogą być wysyłane.
  • W przypadku SelectErrorelementu funkcja zwraca wartość true , jeśli przetwarzanie Connect nie blokuje, a połączenie nie powiodło się lub jeśli OutOfBandInline nie jest 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.

Została zamknięta Socket .

Dotyczy

Poll(Int32, SelectMode)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Określa stan obiektu 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

Jedna z SelectMode wartości.

Zwraca

Stan elementu Socket na podstawie wartości trybu sondowania przekazanej w parametrze mode .

  • W przypadku SelectReadprogramu zwraca true wartość , jeśli Listen() została wywołana, a połączenie jest oczekujące, jeśli dane są dostępne do odczytu lub czy połączenie zostało zamknięte, zresetowane lub zakończone.
  • W przypadku SelectWriteelementu funkcja zwraca wartość true , jeśli przetwarzanie elementu Connect i połączenie zakończyło się pomyślnie lub jeśli dane mogą być wysyłane.
  • W przypadku SelectErrorelementu funkcja zwraca wartość true , jeśli przetwarzanie Connect nie blokuje, a połączenie nie powiodło się lub jeśli OutOfBandInline nie jest ustawione, a dane poza pasmem są dostępne.
  • W przeciwnym razie zwraca wartość false.

Wyjątki

Parametr mode nie jest jednym z SelectMode wartości.

Wystąpił błąd podczas próby uzyskania dostępu do gniazda. Zobacz uwagi poniżej.

Została zamknięta Socket .

Przykłady

Poniższy przykład kodu tworzy gniazdo, łączy się z serwerem i używa go Poll do sprawdzenia stanu gniazda.

//Creates the Socket for sending data over TCP.
Socket^ s = gcnew 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.
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 obiektu Socket. Określ SelectMode.SelectRead parametr, selectMode aby określić, czy Socket parametr jest czytelny. Określ SelectMode.SelectWrite , czy Socket element jest zapisywalny. Użyj SelectMode.SelectError polecenia , aby wykryć warunek błędu. Poll zablokuje wykonywanie do określonego okresu, mierzonego w microsecondsparametrze , 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, warto użyć Select metody .

Uwaga

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 gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

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ł wyłączony niegracecznie. Aby wykryć tego rodzaju błędy, należy spróbować wysłać lub odebrać dane.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy