Condividi tramite


Socket.Poll Metodo

Definizione

Overload

Poll(TimeSpan, SelectMode)

Determina lo stato del Socket.

Poll(Int32, SelectMode)

Determina lo stato del Socket.

Poll(TimeSpan, SelectMode)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
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 una delle condizioni seguenti si verifica prima della timeout scadenza, in caso contrario, false.

  • Per SelectRead, restituisce true se è stato chiamato e una connessione è in sospeso, se Listen() i dati sono disponibili per la lettura o se la connessione è stata chiusa, reimpostata o terminata.
  • Per SelectWrite, restituisce true se l'elaborazione di un Connect oggetto e la connessione ha avuto esito positivo o se i dati possono essere inviati.
  • Per SelectError, restituisce true se l'elaborazione di un Connect oggetto che non blocca e la connessione non è riuscita o se OutOfBandInline non è impostata 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)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
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 è stato chiamato e una connessione è in sospeso, se Listen() i dati sono disponibili per la lettura o se la connessione è stata chiusa, reimpostata o terminata.
  • Per SelectWrite, restituisce true se l'elaborazione di un Connect oggetto e la connessione ha avuto esito positivo o se i dati possono essere inviati.
  • Per SelectError, restituisce true se l'elaborazione di un Connect oggetto che non blocca e la connessione non è riuscita o se OutOfBandInline non è impostata 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 per il parametro per determinare se l'oggetto selectModeSocket è leggibileSelectMode.SelectRead. Specificare SelectMode.SelectWrite per determinare se l'oggetto 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, trascorse o i dati diventano disponibili. Impostare il microSeconds parametro su un intero negativo se si vuole attendere in modo indefinito 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 proprietà per ottenere il SocketException.ErrorCode codice di errore specifico. Dopo aver ottenuto questo codice, vedere la documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Nota

Questo metodo non riesce a rilevare determinati tipi di problemi di connessione, ad esempio un cavo di rete interrotto o che l'host remoto è stato arrestato in modo imprevisto. È 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