CAsyncSocket::Receive

virtual int Recibir ( void * lpBuf, int nBufLen, int nFlags = 0 );

Valor devuelto

Si se produce ningún error, recibir devuelve el número de bytes recibidos. Si la conexión ha sido cerrada, devuelve 0. De lo contrario, se devuelve un valor de SOCKET_ERROR y un código de error específico puede ser obtenido llamando GetLastError. Los errores siguientes se aplican a esta función miembro:

Parámetros

lpBuf

Un búfer para los datos entrantes.

nBufLen

La longitud de lpBuf en bytes.

nFlags

Especifica la forma en que se realiza la llamada. La semántica de esta función está determinada por las opciones de socket y el parámetro nFlags . Este último se construye mediante la combinación de cualquiera de los siguientes valores con el operador C++ o:

Observaciones

Llame a esta función miembro para recibir datos desde un socket. Esta función se utiliza para stream conectado o sockets de datagramas y se utiliza para leer los datos de entrada.

Para sockets de tipo SOCK_STREAM, tanta información como está actualmente disponible hasta el tamaño del búfer suministrado es devuelto. Si ha configurado el socket para recepción en línea de datos fuera de banda (opción de socket SO_OOBINLINE) y datos fuera de banda no leídos, se devolverá únicamente los datos fuera de banda. La aplicación puede utilizar la opción de IOCtl SIOCATMARK o OnOutOfBandData para determinar si sigue siendo cualquier dato más fuera de banda para ser leído.

Para sockets de datagramas, se extraen datos del primer datagrama de cola, hasta el tamaño del búfer suministrado. Si el datagrama es mayor que el búfer suministrado, el búfer se rellena con la primera parte del datagrama, se pierden los datos exceso y recepción devuelve un valor de SOCKET_ERROR con el código de error establecido en WSAEMSGSIZE. Si no hay datos entrantes están disponibles en el zócalo, se devuelve un valor de SOCKET_ERROR con el código de error establecido en WSAEWOULDBLOCK. La función de devolución de llamada de OnReceive puede utilizarse para determinar cuándo llegan más datos.

Si el zócalo es de tipo SOCK_STREAM y el lado remoto ha cerrado la conexión correctamente, una recepción finalizará inmediatamente con 0 bytes recibidos. Si se ha restablecido la conexión, se producirá un error una recepción con el error WSAECONNRESET.

Introducción a CAsyncSocket |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambié&nnbsp;CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index