Socket.Poll Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| Poll(TimeSpan, SelectMode) |
Bestimmt den Status der Socket. |
| Poll(Int32, SelectMode) |
Bestimmt den Status der Socket. |
Poll(TimeSpan, SelectMode)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Bestimmt den Status der 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
Parameter
- timeout
- TimeSpan
Die Zeit, um auf eine Antwort zu warten.
- mode
- SelectMode
Einer der SelectMode Werte.
Gibt zurück
Der Status des Socket basierenden Abfragemoduswerts, der mode im Parameter übergeben wird. Gibt zurück true , wenn eine der folgenden Bedingungen vor ablaufen timeout , andernfalls false.
- For SelectRead, it returns
trueif Listen() has been called and a connection is pending, if data is available for reading, or if the connection has been closed, reset, or terminated. - For SelectWrite, it returns
trueif processing a Connect and the connection has succeeded or if data can be sent. - For SelectError, it returns
trueif processing a Connect that does not block and the connection has failed, or if OutOfBandInline is not set and out-of-band data is available. - Andernfalls wird
falsezurückgegeben.
Ausnahmen
timeout ist kleiner als -1 Millisekunden oder größer als MaxValue Millisekunden.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Gilt für:
Poll(Int32, SelectMode)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Bestimmt den Status der 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
Parameter
- microSeconds
- Int32
Die Zeit, um auf eine Antwort zu warten, in Mikrosekunden.
- mode
- SelectMode
Einer der SelectMode Werte.
Gibt zurück
Der Status des Socket basierenden Abfragemoduswerts, der mode im Parameter übergeben wird.
- For SelectRead, it returns
trueif Listen() has been called and a connection is pending, if data is available for reading, or if the connection has been closed, reset, or terminated. - For SelectWrite, it returns
trueif processing a Connect and the connection has succeeded or if data can be sent. - For SelectError, it returns
trueif processing a Connect that does not block and the connection has failed, or if OutOfBandInline is not set and out-of-band data is available. - Andernfalls wird
falsezurückgegeben.
Ausnahmen
Der mode Parameter ist nicht einer der SelectMode Werte.
Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten. Weitere Informationen finden Sie weiter unten.
Das Socket wurde geschlossen.
Beispiele
Im folgenden Codebeispiel wird ein Socket erstellt, eine Verbindung mit einem Server hergestellt und verwendet Poll , um den Status des Sockets zu überprüfen.
//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
Hinweise
Die Poll Methode überprüft den Zustand der Socket. Geben Sie SelectMode.SelectRead an, ob Socket der selectMode Parameter lesbar ist. Geben Sie SelectMode.SelectWrite an, ob die Socket Schreibbar ist. Wird SelectMode.SelectError verwendet, um eine Fehlerbedingung zu erkennen.
Poll blockiert die Ausführung, bis der angegebene Zeitraum, gemessen in microseconds, Verstrichen oder Daten verfügbar ist. Legen Sie den microSeconds Parameter auf eine negative ganze Zahl fest, wenn Sie auf unbestimmte Zeit auf eine Antwort warten möchten. Wenn Sie den Status mehrerer Sockets überprüfen möchten, sollten Sie die Select Methode verwenden.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen. Nachdem Sie diesen Code erhalten haben, finden Sie in der Windows Sockets Version 2-API-Fehlercodedokumentation eine detaillierte Beschreibung des Fehlers.
Hinweis
Diese Methode kann bestimmte Arten von Verbindungsproblemen nicht erkennen, z. B. ein fehlerhaftes Netzwerkkabel oder dass der Remotehost unauffällig heruntergefahren wurde. Sie müssen versuchen, Daten zu senden oder zu empfangen, um diese Arten von Fehlern zu erkennen.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing in .NET Framework.