CAsyncSocket::Receive

Virtual int Receive ( vuoto * lpBuf, int nBufLen, int nFlags = 0 );

Valore restituito

Se si verifica alcun errore, Receive restituisce il numero di byte ricevuti. Se la connessione è stata chiusa, restituisce 0. In caso contrario, viene restituito un valore di SOCKET_ERROR , e un codice di errore specifico può essere recuperato chiamando GetLastError. I seguenti errori si applicano a questa funzione membro:

Parametri

lpBuf

Un buffer per i dati in arrivo.

nBufLen

La lunghezza di lpBuf in byte.

nFlags

Specifica il modo in cui viene effettuata la chiamata. La semantica di questa funzione è determinata dalle opzioni del socket e il parametro nFlags . Quest'ultimo viene creato combinando uno qualsiasi dei seguenti valori con l'operatore C++ o:

Osservazioni

Chiamare questa funzione membro per ricevere dati da un socket. Questa funzione è utilizzata per flusso connesso o socket di datagramma e viene utilizzata per leggere i dati in ingresso.

Per i socket di tipo SOCK_STREAM, tante informazioni come è attualmente disponibile fino alla dimensione del buffer fornito viene restituite. Se il socket è stato configurato per la ricezione in linea di dati fuori banda (opzione socket SO_OOBINLINE) e out-of-band dati non letti, verranno restituiti solo i dati di out-of-band. L'applicazione può utilizzare l'opzioneSIOCATMARK IOCtlo OnOutOfBandData per determinare se i dati più out-of-band rimangono da leggere .

Per i socket di datagramma, i dati vengono estratti dal primo datagramma accodato, fino alla dimensione del buffer fornito. Se il datagramma è più grande del buffer fornito, il buffer viene riempito con la prima parte del datagramma, eccesso vengono persi e Receive restituisce un valore di SOCKET_ERROR con il codice di errore impostato su WSAEMSGSIZE. Se nessun dato in ingresso è disponibile presso il socket, viene restituito un valore di SOCKET_ERROR con il codice di errore impostato su WSAEWOULDBLOCK. La funzione di callback OnReceive può essere utilizzata per determinare quando arrivano più dati.

Se il socket è di tipo SOCK_STREAM e il lato remoto ha chiuso la connessione con garbo, una ricezione completerà immediatamente con 0 byte ricevuti. Se la connessione è stata ripristinata, una ricezione avrà esito negativo con l'errore WSAECONNRESET.

CAsyncSocket panoramica |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index