Socket.Poll Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
Poll(TimeSpan, SelectMode) |
Determina lo stato del Socket. |
Poll(Int32, SelectMode) |
Determina lo stato del Socket. |
Poll(TimeSpan, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Determina lo stato del 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
Parametri
- timeout
- TimeSpan
Tempo di attesa per una risposta.
- mode
- SelectMode
Uno dei valori di SelectMode.
Restituisce
Stato dell'oggetto Socket in base al valore della modalità di polling passato nel parametro mode
. Restituisce true
se si verifica una delle condizioni seguenti prima della timeout
scadenza. In caso contrario, false
.
- Per SelectRead, restituisce
true
se Listen() è stato chiamato e una connessione è in sospeso, se i dati sono disponibili per la lettura o se la connessione è stata chiusa, reimpostata o terminata. - Per SelectWrite, restituisce
true
se l'elaborazione di e Connect la connessione ha avuto esito positivo o se è possibile inviare i dati. - Per SelectError, restituisce
true
se l'elaborazione di un Connect oggetto che non blocca e la connessione non è riuscita oppure se OutOfBandInline non è impostato e i dati fuori banda sono disponibili. - In caso contrario, viene restituito
false
.
Eccezioni
timeout
è minore di -1 millisecondi o maggiore di MaxValue millisecondi.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Si applica a
Poll(Int32, SelectMode)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Determina lo stato del 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
Parametri
- microSeconds
- Int32
Tempo di attesa per una risposta, espresso in microsecondi.
- mode
- SelectMode
Uno dei valori di SelectMode.
Restituisce
Stato dell'oggetto Socket in base al valore della modalità di polling passato nel parametro mode
.
- Per SelectRead, restituisce
true
se Listen() è stato chiamato e una connessione è in sospeso, se i dati sono disponibili per la lettura o se la connessione è stata chiusa, reimpostata o terminata. - Per SelectWrite, restituisce
true
se l'elaborazione di e Connect la connessione ha avuto esito positivo o se è possibile inviare i dati. - Per SelectError, restituisce
true
se l'elaborazione di un Connect oggetto che non blocca e la connessione non è riuscita oppure se OutOfBandInline non è impostato e i dati fuori banda sono disponibili. - In caso contrario, viene restituito
false
.
Eccezioni
Il parametro mode
non è uno dei valori di SelectMode.
Si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione Note riportata di seguito.
L'oggetto Socket è stato chiuso.
Esempio
L'esempio di codice seguente crea un socket, si connette a un server e usa Poll per controllare lo stato del socket.
//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
Commenti
Il Poll metodo controlla lo stato dell'oggetto Socket. Specificare SelectMode.SelectRead per il selectMode
parametro per determinare se è Socket leggibile. Specificare SelectMode.SelectWrite per determinare se è Socket scrivibile. Usare SelectMode.SelectError per rilevare una condizione di errore. Poll blocca l'esecuzione fino a quando il periodo di tempo specificato, misurato in microseconds
, scade o diventa disponibile. Impostare il microSeconds
parametro su un numero intero negativo se si desidera attendere per un periodo illimitato per una risposta. Se si vuole controllare lo stato di più socket, è consigliabile usare il Select metodo .
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Nota
Questo metodo non è in grado di rilevare determinati tipi di problemi di connessione, ad esempio un cavo di rete interrotto o che l'host remoto è stato arrestato in modo anomalo. È necessario tentare di inviare o ricevere dati per rilevare questi tipi di errori.
Nota
Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per