Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих таблицах описаны параметры сокета SOL_SOCKET . Дополнительные сведения о получении и настройке параметров сокета см. на справочных страницах функций gets и setsockopt.
Чтобы перечислить протоколы и обнаружить поддерживаемые свойства для каждого установленного протокола, используйте функцию WSAEnumProtocols, WSCEnumProtocols или WSCEnumProtocols32.
Для некоторых вариантов сокета требуется больше объяснения, чем эти таблицы могут передаваться; такие параметры содержат ссылки на дополнительные страницы.
Note
Все параметры сокета SOL_SOCKET применяются одинаково к IPv4 и IPv6 (за исключением SO_BROADCAST, так как широковещательная передача не реализована в IPv6).
Параметры сокета SOL_SOCKET
| Опция | Get | Установить | Тип Optval | Description |
|---|---|---|---|---|
| PVD_CONFIG | yes | yes | char [] | Непрозрачный объект структуры данных, содержащий сведения о конфигурации поставщика услуг. Этот параметр зависит от реализации. |
| SO_ACCEPTCONN | yes | DWORD (логический) | Возвращает, находится ли сокет в режиме прослушивания. Этот параметр действителен только для протоколов, ориентированных на подключение. | |
| SO_BROADCAST | yes | yes | DWORD (логический) | Настройте сокет для отправки широковещательных данных. Этот параметр действителен только для протоколов, поддерживающих вещание (НАПРИМЕР, IPX и UDP). |
| SO_BSP_STATE | yes | CSADDR_INFO | Возвращает локальный адрес, локальный порт, удаленный адрес, удаленный порт, тип сокета и протокол, используемый сокетом. Дополнительные сведения см . в SO_BSP_STATE справочнике. | |
| SO_CONDITIONAL_ACCEPT | yes | yes | DWORD (логический) | Указывает, должны ли входящие подключения приниматься или отклоняться приложением, а не стеком протоколов. Дополнительные сведения см. в SO_CONDITIONAL_ACCEPT справочнике. |
| SO_CONNDATA | yes | yes | char [] | Дополнительные данные, а не в обычном сетевом потоке данных, которые отправляются с сетевыми запросами для установления подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. |
| SO_CONNDATALEN | yes | DWORD | Длина в байтах дополнительных данных, а не в обычном сетевом потоке данных, которая отправляется с сетевыми запросами для установления подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. | |
| SO_CONNECT_TIME | yes | DWORD | Возвращает количество секунд подключения сокета. Этот параметр действителен только для протоколов, ориентированных на подключение. | |
| SO_CONNOPT | yes | yes | char [] | Дополнительные данные параметра подключения, а не в обычном сетевом потоке данных, которые отправляются с сетевыми запросами для установления подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. |
| SO_CONNOPTLEN | yes | DWORD | Длина в байтах данных параметра подключения, а не в обычном сетевом потоке данных, которая отправляется с сетевыми запросами для установления подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. | |
| SO_DISCDATA | yes | yes | char [] | Дополнительные данные, а не в обычном сетевом потоке данных, которые отправляются с сетевыми запросами для отключения подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. |
| SO_DISCDATALEN | yes | DWORD | Длина в байтах дополнительных данных, а не в обычном сетевом потоке данных, которая отправляется с сетевыми запросами для отключения подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. | |
| SO_DISCOPT | yes | yes | char [] | Дополнительные данные параметра отключения, а не в обычном сетевом потоке данных, которые отправляются с сетевыми запросами для отключения подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. |
| SO_DISCOPTLEN | yes | DWORD | Длина в байтах дополнительных данных параметра отключения, а не в обычном сетевом потоке данных, которая отправляется с сетевыми запросами для отключения подключения. Этот параметр используется устаревшими протоколами, такими как DECNet, OSI TP4 и другие. Этот параметр не поддерживается протоколом TCP/IP в Windows. | |
| SO_DEBUG | yes | yes | DWORD (логический) | Включите выходные данные отладки. В настоящее время поставщики Майкрософт не выводит никаких сведений об отладке. |
| SO_DONTLINGER | yes | yes | DWORD (логический) | Указывает состояние элемента l_onoff структуры , связанной с сокетом. Если этот элемент не является ненулевой, сокет остается открытым в течение указанного времени после вызова функции closesocket , чтобы разрешить отправку данных в очереди. Этот параметр действителен только для надежных протоколов, ориентированных на подключение. |
| SO_DONTROUTE | yes | yes | DWORD (логический) | Указывает, что исходящие данные должны отправляться в любом интерфейсе, к которому привязан сокет, а не к перенаправлению на другой интерфейс. Этот параметр действителен только для протоколов, ориентированных на сообщения. Microsoft поставщики автоматически игнорируют этот параметр и всегда обратитесь к таблице маршрутизации, чтобы найти соответствующий исходящий интерфейс. |
| SO_ERROR | yes | DWORD | Возвращает последний код ошибки в этом сокете. Этот код ошибки для сокета не всегда устанавливается немедленно. | |
| SO_EXCLUSIVEADDRUSE | yes | yes | DWORD (логический) | Запрещает привязку других сокетов к одному и тому же адресу и порту. Этот параметр необходимо задать перед вызовом функции привязки . Дополнительные сведения см . в SO_EXCLUSIVEADDRUSE справочнике. |
| SO_GROUP_ID | yes | целое число без знака | Этот параметр сокета зарезервирован и не должен использоваться. | |
| SO_GROUP_PRIORITY | yes | yes | int | Этот параметр сокета зарезервирован и не должен использоваться. |
| SO_KEEPALIVE | yes | yes | DWORD (логический) | Включает сохранение активности для подключения сокета. Допустимо только для протоколов, поддерживающих представление о сохранении активности (протоколы, ориентированные на подключение). Для TCP время ожидания по умолчанию составляет 2 часа, а интервал поддержания активности составляет 1 секунду. Количество проб по умолчанию зависит от версии Windows. Дополнительные сведения см . в SO_KEEPALIVE справочнике. |
| SO_LINGER | yes | yes | струк задерживающийся | Указывает состояние задерживаемой структуры, связанной с сокетом. Если элемент l_onoff ненулевой структуры, сокет остается открытым в течение указанного времени после вызова функции closesocket , чтобы разрешить отправку данных в очереди. Время, в секундах, оставшееся открытым, указывается в элементе l_linger структуры затрачивается . Этот параметр действителен только для надежных протоколов, ориентированных на подключение. |
| SO_MAX_MSG_SIZE | yes | DWORD | Возвращает максимальный размер исходящего сообщения для сокетов, ориентированных на сообщения, поддерживаемых протоколом. Не имеет значения для сокетов, ориентированных на поток. | |
| SO_MAXDG | yes | DWORD | Возвращает максимальный размер в байтах для исходящих диаграмм данных, поддерживаемых протоколом. Этот параметр сокета не имеет значения для сокетов, ориентированных на поток. | |
| SO_MAXPATHDG | yes | DWORD | Возвращает максимальный размер в байтах для исходящих диаграмм данных, поддерживаемых протоколом для заданного адреса назначения. Этот параметр сокета не имеет значения для сокетов, ориентированных на поток. Microsoft поставщики могут молча рассматривать это как SO_MAXDG. | |
| SO_OOBINLINE | yes | yes | DWORD (логический) | Указывает, что не привязанные данные должны быть возвращены в строке с обычными данными. Этот параметр действителен только для протоколов, ориентированных на подключение, которые поддерживают внеполосные данные. |
| SO_OPENTYPE | yes | yes | DWORD | После установки влияет, будут ли созданные последующие сокеты не перекрываться. Возможные значения этого параметра — SO_SYNCHRONOUS_ALERT и SO_SYNCHRONOUS_NONALERT. Этот параметр не следует использовать. Вместо этого используйте функцию WSASocket и оставьте WSA_FLAG_OVERLAPPED бит в параметре dwFlags отключен. |
| SO_PAUSE_ACCEPT | yes | yes | DWORD(boolean) | Используйте этот параметр для прослушивания сокетов. Если параметр задан, сокет реагирует на все входящие подключения с помощью RST, а не принимает их. |
| SO_PORT_SCALABILITY | yes | yes | DWORD (логический) | Обеспечивает масштабируемость локального порта для сокета, позволяя максимально распределить порты с подстановочными знаками несколько раз для разных пар портов локального адреса на локальном компьютере. На платформах, где доступны оба варианта, предпочесть SO_REUSE_UNICASTPORT вместо этого параметра. Дополнительные сведения см . в SO_PORT_SCALABILITY справочнике. |
| SO_PROTOCOL_INFO | yes | WSAPROTOCOL_INFO | Этот параметр определяется параметром сокета SO_PROTOCOL_INFOW, если определен макрос ЮНИКОД. Если макрос ЮНИКОД не определен, этот параметр определен для параметра сокета SO_PROTOCOL_INFOA. | |
| SO_PROTOCOL_INFOA | yes | WSAPROTOCOL_INFOA | Возвращает структуру WSAPROTOCOL_INFOA для данного сокета. | |
| SO_PROTOCOL_INFOW | yes | WSAPROTOCOL_INFOW | Возвращает структуру WSAPROTOCOL_INFOW для данного сокета | |
| SO_RANDOMIZE_PORT | yes | yes | DWORD(boolean) | Этот параметр должен быть установлен в несвязанном сокете. Если SO_RANDOMIZE_PORT задан, а временный порт выбран в сокете, то случайный номер порта привязан. Автоматическое повторное использование портов (портов, выбранных с помощью SO_REUSE_UNICASTPORT) также случайным образом возвращает возвращенный порт, поэтому если приложение задает SO_REUSE_UNICASTPORT, а затем пытается задать SO_RANDOMIZE_PORT, второй вызов setockopt завершается сбоем. |
| SO_RCVBUF | yes | yes | DWORD | Общее пространство буфера сокета, зарезервированное для получения. Это не связано с SO_MAX_MSG_SIZE и не обязательно соответствует размеру окна получения TCP. |
| SO_RCVLOWAT | yes | yes | DWORD | Параметр сокета из BSD UNIX, включенный для обратной совместимости. Этот параметр задает минимальное количество байтов для обработки операций ввода сокета. Этот параметр не поддерживается поставщиком tcp/IP Windows. Если этот параметр используется в Windows Vista и более поздних версиях, функции getsockopt и setsockopt завершаются сбоем с WSAEINVAL. В более ранних версиях Windows эти функции завершаются ошибкой WSAENOPROTOOPT. |
| SO_RCVTIMEO | yes | yes | DWORD | Время ожидания (в миллисекундах) для блокировки вызовов приема. Значение по умолчанию для этого параметра равно нулю, указывающее, что операция получения не будет истекает. Если время ожидания блокирующего вызова приема истекает, подключение находится в неопределенном состоянии и должно быть закрыто. Если сокет создается с помощью функции WSASocket , параметр dwFlags должен иметь атрибут WSA_FLAG_OVERLAPPED для правильной работы времени ожидания. В противном случае время ожидания никогда не вступает в силу. |
| SO_REUSEADDR | yes | yes | DWORD (логический) | Позволяет сокету привязаться к адресу и порту, которые уже используются. Параметр SO_EXCLUSIVEADDRUSE может предотвратить это. |
| SO_REUSE_UNICASTPORT | yes | yes | DWORD (логический) | Если задано, разрешить повторное использование временных портов для функций подключения API Winsock, требующих явной привязки, например ConnectEx. Обратите внимание, что функции подключения с неявной привязкой (например, без явной привязки) имеют этот параметр по умолчанию. Используйте этот параметр вместо SO_PORT_SCALABILITY на платформах, где доступны оба варианта. |
| SO_REUSE_MULTICASTPORT | yes | DWORD | При установке в сокете этот параметр указывает, что сокет никогда не будет использоваться для получения пакетов одноадресной рассылки и, следовательно, что его порт можно совместно использовать с другими приложениями только для многоадресной рассылки. Установка значения 1 позволяет всегда предоставлять общий доступ к многоадресной рассылке трафика на порту. Установка значения 0 (по умолчанию) отключает это поведение. | |
| SO_SNDBUF | yes | yes | DWORD | Общее пространство буфера сокета, зарезервированное для отправки. Это не связано с SO_MAX_MSG_SIZE и не обязательно соответствует размеру окна отправки TCP. |
| SO_SNDLOWAT | yes | yes | DWORD | Параметр сокета из BSD UNIX, включенный для обратной совместимости. Этот параметр задает минимальное количество байтов для обработки операций вывода сокета. Этот параметр не поддерживается поставщиком tcp/IP Windows. Если этот параметр используется в Windows Vista и более поздних версиях, функции getsockopt и setsockopt завершаются сбоем с WSAEINVAL. В более ранних версиях Windows эти функции завершаются ошибкой WSAENOPROTOOPT. |
| SO_SNDTIMEO | yes | yes | DWORD | Время ожидания (в миллисекундах) для блокировки вызовов отправки. Значение по умолчанию для этого параметра равно нулю, указывающее, что операция отправки не будет истекать. Если время ожидания вызова блокирующей отправки истекает, подключение находится в неопределенном состоянии и должно быть закрыто. Если сокет создается с помощью функции WSASocket , параметр dwFlags должен иметь атрибут WSA_FLAG_OVERLAPPED для правильной работы времени ожидания. В противном случае время ожидания никогда не вступает в силу. |
| SO_TYPE | yes | DWORD | Возвращает тип сокета для данного сокета (например, SOCK_STREAM или SOCK_DGRAM). | |
| SO_UPDATE_ACCEPT_CONTEXT | yes | DWORD (логический) | Этот параметр используется с функцией AcceptEx . Этот параметр обновляет свойства сокета, унаследованного от сокета прослушивания. Этот параметр следует задать, если функции getpeername, getockname, getockopt или setockopt должны использоваться в принятом сокете. | |
| SO_UPDATE_CONNECT_CONTEXT | yes | DWORD (логический) | Этот параметр используется с функциями ConnectEx, WSAConnectByList и WSAConnectByName . Этот параметр обновляет свойства сокета после установки подключения. Этот параметр следует задать, если функции getpeername, getockname, getockopt, setockopt или завершения работы должны использоваться в подключенном сокете. | |
| SO_USELOOPBACK | yes | yes | DWORD (логический) | Используйте локальный адрес обратного цикла при отправке данных из этого сокета. Этот параметр следует использовать только в том случае, если все отправленные данные также будут получены локально. Этот параметр не поддерживается поставщиком tcp/IP Windows. Если этот параметр используется в Windows Vista и более поздних версиях, функции getsockopt и setsockopt завершаются сбоем с WSAEINVAL. В более ранних версиях Windows эти функции завершаются ошибкой WSAENOPROTOOPT. |
поддержка Windows параметров SOL_SOCKET
| Опция | Windows 10 | Windows 7 | Windows Server 2008 г. | Windows Vista | Windows Server 2003 | Windows XP | Windows 2000 | Windows NT4 | Windows 9x/ME |
|---|---|---|---|---|---|---|---|---|---|
| PVD_CONFIG | |||||||||
| SO_ACCEPTCONN | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_BROADCAST | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_BSP_STATE | yes | yes | yes | yes | |||||
| SO_CONDITIONAL_ACCEPT | yes | yes | yes | yes | yes | yes | yes | ||
| SO_CONNDATA | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNDATALEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNECT_TIME | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_CONNOPT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNOPTLEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCDATA | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCDATALEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCOPT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCOPTLEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DEBUG | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_DONTLINGER | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_DONTROUTE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_ERROR | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_EXCLUSIVEADDRUSE | yes | yes | yes | yes | yes | yes | yes | Да с пакетом обновления 4 (SP4) | |
| SO_GROUP_ID | yes | yes | yes | yes | |||||
| SO_GROUP_PRIORITY | yes | yes | yes | yes | |||||
| SO_KEEPALIVE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_LINGER | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_MAX_MSG_SIZE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_MAXDG | yes | yes | yes | yes | yes | yes | yes | ||
| SO_MAXPATHDG | yes | yes | yes | yes | yes | yes | yes | ||
| SO_OOBINLINE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_OPENTYPE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PORT_SCALABILITY | yes | yes | yes | ||||||
| SO_PROTECT | yes | ||||||||
| SO_PROTOCOL_INFO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PROTOCOL_INFOA | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PROTOCOL_INFOW | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RCVBUF | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RCVLOWAT | |||||||||
| SO_RCVTIMEO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RANDOMIZE_PORT | yes | yes | yes | yes | |||||
| SO_REUSEADDR | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_REUSE_UNICASTPORT | yes | ||||||||
| SO_REUSE_MULTICASTPORT | yes | ||||||||
| SO_SNDBUF | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_SNDLOWAT | |||||||||
| SO_SNDTIMEO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_TYPE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_UPDATE_ACCEPT_CONTEXT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_UPDATE_CONNECT_CONTEXT | yes | yes | yes | yes | yes | yes | |||
| SO_USELOOPBACK |
Remarks
Параметры сокета SOL_SOCKET определены в нескольких файлах заголовков Winsock:
- Winsock2.h
- Mswsock.h
- Ws2def.h
В пакете SDK для Microsoft Windows, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась и SOL_SOCKET уровень определяется в файле заголовка Ws2def.h, который автоматически входит в файл заголовка Winsock2.h. Некоторые параметры сокета SOL_SOCKET определены в файлах заголовков Winsock2.h и Mswsock.h . Остальные параметры сокета SOL_SOCKET определяются в файле заголовка Ws2def.h , который автоматически включается в файл заголовка Winsock2.h . Ws2def.h никогда не следует использовать напрямую.
В пакете SDK для платформы, выпущенном для Windows Server 2003 и Windows XP, уровень SOL_SOCKET определен в файле заголовка Winsock2.h. Параметры сокета SOL_SOCKET определены в файлах заголовка Winsock2.h и Mswsock.h .
Requirements
| Requirement | Ценность |
|---|---|
| Заголовок |
|