Что означает код ошибки Windows 10040 (WSAEMSGSIZE)?

 
Предыдущий Следующий
WSAEDESTADDRREQ WSAEPROTOTYPE

WSAEMSGSIZE

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

Влияние на полученные данные

Для UDP буфер получает начальную часть дейтаграммы, а лишние данные теряются. Для надёжного транспорта, ориентированного на сообщения, поставщик службы может сохранить непрочитанную часть до тех пор, пока вызывающая сторона не передаст достаточно большой буфер.

Как диагностировать

  • Зафиксируйте тип сокета и длину буфера, использованного при неудачном приёме.
  • Определите и соблюдайте максимальный размер сообщения на уровне приложения.
  • Не предполагайте, что потоковый сокет сохраняет границы сообщений; кадрирование потока должно определяться самим протоколом.

Microsoft: recv


Нужно найти другой код? Найти другой код состояния или ошибки.