50K
23 сентября 2011 года
Gvaler
8 / / 29.09.2009
Использую MFC. Имеется UDP-сокет (CAsyncSocket). При приходе пакета длиной более 2048 байт функция ReceiveFrom возвращает SOCKET_ERROR, а GetLastError при этом определяет, что ошибка следующая: WSAEMSGSIZE (10040) - "A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself".
Установка опции сокета
int RcvBufSize = 0x3000;
pSocket->SetSockOpt(SO_RCVBUF, &RcvBufSize, sizeof(RcvBufSize), SOL_SOCKET)
не помогает (если ничего не устанавливать, то по умолчанию 8192 байта).
В чём может быть проблема?