CAsyncSocket::Receive

Виртуальный int Receive ( void * lpBuf, int nBufLen, int nFlags = 0 );

Возвращаемое значение

Если ошибка не возникает, Receive возвращает число полученных байтов. Если подключение было закрыто, то возвращается 0. В противном случае возвращается значение SOCKET_ERROR , и код ошибки можно получить, вызвав функцию GetLastError. Следующие ошибки применяются к этой функции-члена:

Параметры

lpBuf

Буфера для поступающих данных.

nBufLen

Длина lpBuf в байтах.

nFlags

Указывает способ, в котором производится вызов. Семантика этой функции определяются параметры socket и параметр nFlags . Построен путем объединения любого из следующих значений с C++ или оператор:

Примечания

Вызов этой функции-члена для получения данных от розетки. Эта функция используется для подключенного потока или сокет датаграмм и используется для чтения данных, поступающих.

Для сокетов, типа SOCK_STREAMвозвращается как можно больше информации в настоящее время доступен до размера буфера поставляется. Если сокет был настроен на прием в линии диапазона данных (параметр сокета SO_OOBINLINE) и непрочитанных данных-диапазона, возвращается только-диапазона данных. Приложение может использовать параметр IOCtl SIOCATMARK или OnOutOfBandData для определения того, остается ли какие-либо более-внешнее данных следует читать.

Для сокетов датаграмм данные извлекаются из первую датаграмму, вплоть до размера буфера поставляется. Если полученная датаграмма превышает поставляется буфера, буфер заполняется с первой частью датаграммы, избыточные данные теряются и Receive возвращает значение SOCKET_ERROR с кодом ошибки, равным WSAEMSGSIZE. Если входящих данных не имеется на сокет, с кодом ошибки, значение WSAEWOULDBLOCKвозвращается значение SOCKET_ERROR . OnReceive функция обратного вызова может использоваться для определения, когда приезжает больше данных.

Если сокет имеет тип SOCK_STREAM и удаленная сторона дружелюбно подключение, инструкция Receive немедленно завершит с 0 байт получено. Если сбросить подключение, инструкция Receive произойдет сбой с ошибкой WSAECONNRESET.

Обзор CAsyncSocket |nbsp; Члены класса | Иерархическая схема

См. также CAsyncSocket::AsyncSelect, CAsyncSocket::Create, CAsyncSocket::ReceiveFrom, CAsyncSocket::Send

Index