Сообщить об ошибке.

Константы, определяемые модулем socket в Python

В разделе представлены константы, определяемые модулем socket. В материале даны описания только часто используемым константам. Описание и применение остальных констант можно найти в документации соответствующей операционной системы.

Констант в модуле socket очень много и в связи с этим, некоторые семейства констант будут обозначаться, например как socket.NI_*, что подразумевает все константы, начинающиеся с префикса NI_*.

Содержание:

- Константы семейства адресов.

  • socket.AF_UNIX;
  • socket.AF_INET;
  • socket.AF_INET6;

Эти константы представляют семейства адресов и протоколов, используемые для первого аргумента функции socket.socket().

Если константа AF_UNIX не определена, то этот протокол не поддерживается. В зависимости от системы может быть доступно больше констант.

- Константы типов сокетов.

  • socket.SOCK_STREAM;
  • socket.SOCK_DGRAM;
  • socket.SOCK_RAW;
  • socket.SOCK_RDM;
  • socket.SOCK_SEQPACKET;

Эти константы представляют типы сокетов, используемые для второго аргумента функции socket.socket(). В зависимости от системы может быть доступно больше констант.

Обычно только SOCK_STREAM и SOCK_DGRAM являются полезными.

- Побитовые флаги, помогающие избежать условий гонки в потоках/процессах.

  • socket.SOCK_CLOEXEC;
  • socket.SOCK_NONBLOCK;

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

- Семейство констант опций сокета.

  • socket.SO_*;
  • socket.SOMAXCONN;
  • socket.MSG_*;
  • socket.SOL_*;
  • socket.SCM_*;
  • socket.IPPROTO_*;
  • socket.IPPORT_*;
  • socket.INADDR_*;
  • socket.IP_*;
  • socket.IPV6_*;
  • socket.EAI_*;
  • socket.AI_*;
  • socket.NI_*;
  • socket.TCP_*;

Многие из этих констант подробно описаны в документации Unix по сокетам и/или протоколу IP. Они обычно используются в аргументах методов Socket.setsockopt() и Socket.getsockopt() объектов сокета Socket.

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

Изменено в Python 3.7: добавлен TCP_NOTSENT_LOWAT.

В Windows TCP_KEEPIDLE, TCP_KEEPINTVL отображаются, если среда выполнения поддерживает Windows.

Изменено в Python 3.10: Добавлен IP_RECVTOS. Добавлен TCP_KEEPALIVE. В MacOS эту константу можно использовать так же, как TCP_KEEPIDLE в Linux.

Изменено в Python 3.11: Добавлен TCP_CONNECTION_INFO. В MacOS эту константу можно использовать так же, как TCP_INFO используется в Linux и BSD.

- Константы диспетчера вещания.

  • socket.CAN_BCM;
  • socket.CAN_BCM_ *;

Константа socket.CAN_BCM в семействе протоколов CAN является протоколом диспетчера вещания BCM.

Константы диспетчера вещания, задокументированные в документации Linux

Доступность: Linux >= 2.6.25.

Примечание. Флаг socket.CAN_BCM_CAN_FD_FRAME доступен только в Linux >= 4.8.

- Семейство констант фильтров CAN.

  • socket.AF_CAN;
  • socket.PF_CAN;
  • socket.SOL_CAN_*;
  • socket.CAN_*;

Представленные константы и семейства констант подробно описаны в документации Linux.

Доступность: Linux >= 2.6.25.

Изменено в Python 3.11: Добавлена ​​поддержка NetBSD.

- Константа поддержки CAN FD в сокете CAN_RAW.

  • socket.CAN_RAW_FD_FRAMES;

Включает поддержку CAN FD в сокете CAN_RAW. По умолчанию это отключено.

Константа позволяет приложению отправлять кадры CAN и CAN FD, однако при чтении из сокета необходимо принимать кадры CAN и CAN FD.

Подробное описание этой константы есть в документации Linux.

Доступность: Linux >= 3.6.

- Константа объединения фильтров CAN.

  • socket.CAN_RAW_JOIN_FILTERS;

Константа объединяет примененные фильтры CAN таким образом, что в пространство пользователя передаются только кадры CAN, соответствующие всем заданным фильтрам CAN.

Подробное описание этой константы есть в документации Linux.

Доступность: Linux >= 4.1.

- Константа протокола ISO-TP.

  • socket.CAN_ISOTP;

Константа socket.CAN_ISOTP в семействе протоколов CAN является протоколом ISO-TP (ISO 15765-2). Константы ISO-TP подробно описаны в документации Linux.

Доступность: Linux >= 2.6.25.

- Константа протокола SAE J1939.

  • socket.CAN_J1939;

Константа socket.CAN_J1939, в семействе протоколов CAN, является протоколом SAE J1939. Константы J1939 подробно описаны в документации Linux.

- Семейство констант PACKET.

  • socket.AF_PACKET;
  • socket.PF_PACKET;
  • socket.PACKET_ *;

Представленные константы и семейства констант подробно описаны в документации Linux.

Доступность: Linux >= 2.2

- Семейство констант RDS.

  • socket.AF_RDS;
  • socket.PF_RDS;
  • socket.SOL_RDS;
  • socket.RDS_ *;

Представленные константы и семейства констант подробно описаны в документации Linux.

Доступность: Linux >= 2.6.30.

- Константы для Windows WSAIoctl().

  • socket.SIO_RCVALL;
  • socket.SIO_KEEPALIVE_VALS;
  • socket.SIO_LOOPBACK_FAST_PATH;
  • socket.RCVALL_ *;

Константы для Windows WSAIoctl(). Константы используются в качестве аргументов метода Socket.ioctl() объектов сокета.

Изменено в версии 3.6: добавлена константа socket.SIO_LOOPBACK_FAST_PATH.

- Семейство констант, относящиеся к TIPC.

  • `socket.TIPC_ *

Константы, относящиеся к TIPC, совпадающие с константами, экспортируемыми API-интерфейсом языка C. Для получения дополнительной информации смотрите документацию по TIPC .

- Константы криптографии, используемые ядром Linux.

  • socket.AF_ALG;
  • socket.SOL_ALG;
  • socket.ALG_ *;

Доступность: Linux >= 2.6.38.

- Константы связи хоста/клиента Linux.

  • socket.AF_VSOCK;
  • socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID;
  • socket.VMADDR *;
  • socket.SO_VM *;

Доступность: Linux = 4.8.

Новое в Python 3.7.

- Константа для ОС BSD и OSX.

  • socket.AF_LINK;

- Константа определения поддержки IPv6.

  • socket.has_ipv6;

Эта константа содержит логическое значение, которое указывает, поддерживается ли IPv6 на этой платформе.


- Константы, содержащие адреса Bluetooth.

  • socket.BDADDR_ANY;
  • socket.BDADDR_LOCAL;

Это строковые константы, содержащие адреса Bluetooth со специальным значением. Например, socket.BDADDR_ANY может использоваться для указания любого адреса при указании сокета привязки с помощью socket.BTPROTO_RFCOMM.

- Константы для использования с socket.BTPROTO_HCI.

  • socket.HCI_FILTER;
  • socket.HCI_TIME_STAMP;
  • socket.HCI_DATA_DIR;

Константа socket.HCI_FILTER недоступна для NetBSD или DragonFlyBSD.

Константа socket.HCI_TIME_STAMP и socket.HCI_DATA_DIR недоступна для FreeBSD, NetBSD или DragonFlyBSD.

- Константа протокола маршрутизатора IPC Qualcomm.

  • socket.AF_QIPCRTR;

Константа для протокола маршрутизатора IPC Qualcomm, используемая для связи с удаленными процессорами, предоставляющими такие услуги.

Доступность: Linux >= 4.7.

- Константы для SOCK_DGRAM, SOCK_STREAM, эквивалентными Linux/DragonFlyBSD SO_PASSCRED.

  • socket.SCM_CREDS2 - должен использоваться для последнего типа сообщения,
  • socket.LOCAL_CREDS - отправляет учетные данные при первом чтении,
  • socket.LOCAL_CREDS_PERSISTENT - отправляет учетные данные при каждом чтении,

LOCAL_CREDS и LOCAL_CREDS_PERSISTENT могут использоваться с сокетами SOCK_DGRAM, SOCK_STREAM, эквивалентными Linux/DragonFlyBSD SO_PASSCRED.

В то время как LOCAL_CREDS отправляет учетные данные при первом чтении, LOCAL_CREDS_PERSISTENT отправляет при каждом чтении, затем должен использоваться SCM_CREDS2 для последнего типа сообщения.

Новое в версии 3.11.

Доступность: FreeBSD.

- Константа для оптимизации локальности ЦП.

  • socket.SO_INCOMING_CPU - константа для оптимизации локальности ЦП, которую следует использовать вместе с SO_REUSEPORT.

Новое в версии 3.11.

Доступность: Linux = 3.9