Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Metodo Socket.ReceiveAsync

Avvia una richiesta asincrona per ricevere dati da un oggetto Socket connesso.

Spazio dei nomi:  System.Net.Sockets
Assembly:  System (in System.dll)
public bool ReceiveAsync(
	SocketAsyncEventArgs e
)

Parametri

e
Tipo: System.Net.Sockets.SocketAsyncEventArgs
Oggetto System.Net.Sockets.SocketAsyncEventArgs da utilizzare per questa operazione socket asincrona.

Valore restituito

Tipo: System.Boolean
Restituisce true se l'operazione di I/O è in sospeso. Al completamento dell'operazione verrà generato l'evento SocketAsyncEventArgs.Completed sul parametro e.
Restituisce false se l'operazione di I/O è stata completata in modo sincrono. In questo caso, l'evento SocketAsyncEventArgs.Completed sul parametro e non verrà generato e l'oggetto e passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
EccezioneCondizione
ArgumentException

Un argomento non è valido. Le proprietà SocketAsyncEventArgs.Buffer o SocketAsyncEventArgs.BufferList sul parametro e devono fare riferimento a buffer validi. È possibile impostare una di queste due proprietà, ma non entrambe contemporaneamente.

InvalidOperationException

Era già in corso un'operazione di socket che utilizza l'oggetto System.Net.Sockets.SocketAsyncEventArgs specificato nel parametro e.

NotSupportedException

Per questo metodo è necessario Windows XP o versione successiva.

ObjectDisposedException

L'oggetto Socket è stato chiuso.

SocketException

Si è verificato un errore durante il tentativo di accesso al socket. Per ulteriori informazioni vedere la sezione Osservazioni.

Il metodo ReceiveAsync viene utilizzato sui socket connessi o sui socket privi di connessione associati e viene utilizzato per leggere i dati in ingresso. L'indirizzo locale del socket deve essere noto.

Per i socket privi di connessione associati, questa funzione limita gli indirizzi da cui vengono accettati i messaggi ricevuti. La funzione restituisce solo i messaggi dall'indirizzo remoto specificato nella connessione. I messaggi provenienti da altri indirizzi vengono ignorati in modo invisibile all'utente.

La proprietà SocketAsyncEventArgs.SocketFlags sul parametro e fornisce al provider di servizi di Windows Sockets informazioni aggiuntive sulla richiesta di lettura. Per ulteriori informazioni sull'utilizzo di questo parametro, vedere System.Net.Sockets.SocketFlags.

Le proprietà e gli eventi seguenti sull'oggetto System.Net.Sockets.SocketAsyncEventArgs sono necessari per chiamare correttamente questo metodo:

Il chiamante può impostare la proprietà SocketAsyncEventArgs.UserToken su qualsiasi oggetto di stato utente desiderato prima di chiamare il metodo ReceiveAsync, in modo che le informazioni possano essere recuperate nel metodo di callback. Se il callback richiede più informazioni di un singolo oggetto, è possibile creare una classe piccola per contenere le altre informazioni sullo stato necessarie, ad esempio i membri.

Per i socket di tipo flusso di byte, i dati in ingresso vengono inseriti nel buffer fino a riempire il buffer, la connessione viene chiusa o i dati memorizzati nel buffer internamente vengono esauriti.

Per i socket orientati ai messaggi, un messaggio in arrivo viene inserito nel buffer fino alla dimensione totale del buffer associato al parametro e. Se il messaggio è più grande del buffer, il buffer viene riempito con la prima parte del messaggio.

Per i socket orientati alla connessione, il metodo ReceiveAsync può indicare la chiusura normale del circuito virtuale in uno di due modi che dipendono dal fatto che il socket sia un flusso di byte o orientato ai messaggi. Per i flussi di byte, la lettura di zero byte indica che la chiusura è avvenuta normalmente e che non verranno più letti altri byte. Per i socket orientati ai messaggi, dove è spesso consentito un messaggio a zero byte, viene utilizzata un'eccezione SocketException con l'oggetto SocketAsyncEventArgs.SocketError impostato sul codice di errore Winsock WSAEDISCON nativo (10101) per indicare la chiusura normale. In qualsiasi caso, un'eccezione SocketException con l'oggetto SocketAsyncEventArgs.SocketError impostato sul codice di errore Winsock WSAECONNRESET nativo (10054) indica che si è verificata una chiusura anomala.

.NET Framework

Supportato in: 4.5, 4, 3.5 SP1, 3.0 SP1, 2.0 SP1

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.