Sdílet prostřednictvím


Socket.Poll Metoda

Definice

Přetížení

Name Description
Poll(TimeSpan, SelectMode)

Určuje stav Socket.

Poll(Int32, SelectMode)

Určuje stav Socket.

Poll(TimeSpan, SelectMode)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Určuje stav 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

Doba čekání na odpověď.

mode
SelectMode

Jedna z SelectMode hodnot.

Návraty

Stav Socket na základě hodnoty režimu dotazování předaný v parametru mode . Vrátítrue, pokud nastane některá z následujících podmínek před vypršením timeout platnosti, jinak . false

  • Pro SelectRead, vrátí true , pokud Listen() byl volána a připojení čeká na vyřízení, pokud jsou data k dispozici pro čtení, nebo pokud bylo připojení uzavřeno, resetováno nebo ukončeno.
  • V SelectWritepřípadě , vrátí true , pokud zpracování Connect a připojení bylo úspěšné nebo pokud je možné odeslat data.
  • true Vrátí SelectErrorse, pokud zpracováníConnect, které neblokuje a připojení selhalo, nebo pokud OutOfBandInline není nastavená a nejsou k dispozici odchozí data.
  • V opačném případě vrátí false.

Výjimky

timeout je menší než -1 milisekund nebo větší než MaxValue milisekundy.

Při pokusu o přístup k soketu došlo k chybě.

Ta Socket byla uzavřena.

Platí pro

Poll(Int32, SelectMode)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
Socket.cs

Určuje stav 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

Doba čekání na odpověď v mikrosekundách.

mode
SelectMode

Jedna z SelectMode hodnot.

Návraty

Stav Socket na základě hodnoty režimu dotazování předaný v parametru mode .

  • Pro SelectRead, vrátí true , pokud Listen() byl volána a připojení čeká na vyřízení, pokud jsou data k dispozici pro čtení, nebo pokud bylo připojení uzavřeno, resetováno nebo ukončeno.
  • V SelectWritepřípadě , vrátí true , pokud zpracování Connect a připojení bylo úspěšné nebo pokud je možné odeslat data.
  • true Vrátí SelectErrorse, pokud zpracováníConnect, které neblokuje a připojení selhalo, nebo pokud OutOfBandInline není nastavená a nejsou k dispozici odchozí data.
  • V opačném případě vrátí false.

Výjimky

Parametr mode není jednou z SelectMode hodnot.

Při pokusu o přístup k soketu došlo k chybě. Viz poznámky níže.

Ta Socket byla uzavřena.

Příklady

Následující příklad kódu vytvoří soket, připojí se k serveru a používá Poll ke kontrole stavu soketu.

//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

Poznámky

Metoda Poll zkontroluje stav Socket. Zadejte SelectMode.SelectRead parametr, selectMode který určuje, jestli Socket je čitelný. Určete SelectMode.SelectWrite , zda Socket je zapisovatelná. Slouží SelectMode.SelectError k detekci chybového stavu. Poll bude blokovat provádění až do zadaného časového období měřeného v microseconds, uplynulé nebo data budou k dispozici. microSeconds Nastavte parametr na záporné celé číslo, pokud chcete čekat na odpověď na neomezenou dobu. Pokud chcete zkontrolovat stav více soketů, možná budete chtít použít metodu Select .

Poznámka:

Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby. Po získání tohoto kódu si přečtěte dokumentaci k chybě rozhraní API rozhraní WINDOWS Sockets verze 2 , kde najdete podrobný popis chyby.

Poznámka:

Tato metoda nemůže rozpoznat určité druhy problémů s připojením, jako je poškozený síťový kabel nebo že vzdálený hostitel byl nerušeně vypnutý. Pokud chcete zjistit tyto druhy chyb, musíte se pokusit odesílat nebo přijímat data.

Poznámka:

Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.

Viz také

Platí pro