| Предыдущий | Следующий |
| WSAEMSGSIZE | WSAENOPROTOOPT |
WSAEPROTOTYPE
WSAEPROTOTYPE указывает на несовместимое сочетание параметров создания сокета. Запрошенный протокол не реализует модель обмена данными, подразумеваемую выбранным типом сокета. Типичный пример — выбор UDP при запросе потокового сокета: UDP ориентирован на датаграммы, тогда как SOCK_STREAM запрашивает надёжный поток байтов.
Как понимать три параметра создания
Сокет выбирается сочетанием семейства адресов, типа и протокола. Семейство задаёт пространство адресации, например IPv4 или IPv6; тип выбирает потоковую, датаграммную, raw или другую модель обмена; протокол должен быть совместим с обоими. Поэтому код указывает на вызов создания сокета или выбора поставщика, а не на ошибку сервера после начала подключения.
Полезные проверки
- Запишите точное значение
af,typeиprotocol, переданный вsocketилиWSASocket. - Указывайте протокол 0, когда выбранные семейство и тип имеют однозначный протокол по умолчанию, если только не требуется конкретный транспорт.
- Отделяйте настройку raw-сокетов и сокетов конкретного поставщика от обычной настройки TCP/UDP.
Microsoft: WSASocket · Microsoft: коды ошибок Winsock · The Open Group: socket
Нужно найти другой код? Найти другой код состояния или ошибки.