Socket.Poll Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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. -
trueVrá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. -
trueVrá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.