Поделиться через


Дескриптор сокета

При необходимости дескриптор сокета может быть дескриптором файла в Windows Sockets 2. Дескриптор сокета от поставщика Winsock можно использовать с другими функциями, не предназначенными для Winsock, такими как ReadFile, WriteFile,ReadFileEx и WriteFileEx.

Элемент XP1_IFS_HANDLES в структуре сведений о протоколе для поставщика определяет, является ли дескриптор сокета от поставщика дескриптором устанавливаемой файловой системы (IFS). Дескрипторы сокета, являющиеся дескрипторами IFS, можно использовать без снижения производительности с другими функциями, не имеющими winsock (например, ReadFile и WriteFile). Любые дескрипторы сокета, отличные от IFS, при использовании с функциями, не связанными с Winsock (например, ReadFile и WriteFile), приводят к взаимодействию между поставщиком и файловой системой, в которых возникают дополнительные затраты на обработку, что может привести к значительному снижение производительности. При использовании дескрипторов сокетов с функциями, не использующими Winsock, коды ошибок, распространяемые из базовой файловой системы, не всегда сопоставляются с кодами ошибок Winsock. Следовательно, рекомендуется использовать дескриптор сокета только с функциями Winsock.

Дескриптор сокета не следует использовать с функцией DuplicateHandle . Наличие многоуровневых поставщиков услуг (LSP) может привести к сбою, и конечный процесс не сможет импортировать дескриптор сокета.

Примечание

Многоуровневые поставщики служб являются устаревшими. Начиная с Windows 8 и Windows Server 2012, используйте платформу фильтрации Windows.

 

В windows Sockets 2 расширены некоторые функции, которые передают данные между сокетами с помощью дескрипторов. Функции предоставляют преимущества, характерные для сокетов для передачи данных, и включают WSARecv, WSASend и WSADuplicateSocket.