| Предыдущий | Следующий |
| WSAEDESTADDRREQ | WSAEPROTOTYPE |
WSAEMSGSIZE
WSAEMSGSIZE означает, что полное сообщение не помещается в буфер, переданный функции приёма. Это особенно важно для дейтаграммных и других сокетов, ориентированных на сообщения, поскольку один вызов приёма соответствует одному сообщению.
Влияние на полученные данные
Для UDP буфер получает начальную часть дейтаграммы, а лишние данные теряются. Для надёжного транспорта, ориентированного на сообщения, поставщик службы может сохранить непрочитанную часть до тех пор, пока вызывающая сторона не передаст достаточно большой буфер.
Как диагностировать
- Зафиксируйте тип сокета и длину буфера, использованного при неудачном приёме.
- Определите и соблюдайте максимальный размер сообщения на уровне приложения.
- Не предполагайте, что потоковый сокет сохраняет границы сообщений; кадрирование потока должно определяться самим протоколом.
Нужно найти другой код? Найти другой код состояния или ошибки.