В разделе представлены константы, определяемые модулем socket. В материале даны описания только часто используемым константам. Описание и применение остальных констант можно найти в документации соответствующей операционной системы.
Констант в модуле socket очень много и в связи с этим, некоторые семейства констант будут обозначаться, например как socket.NI_*, что подразумевает все константы, начинающиеся с префикса NI_*.
SOCK_NONBLOCK и SOCK_CLOEXEC,SOCK_DGRAM, SOCK_STREAM, эквивалентными Linux/DragonFlyBSD SO_PASSCRED,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.
socket.CAN_RAW_FD_FRAMES;Включает поддержку CAN FD в сокете CAN_RAW. По умолчанию это отключено.
Константа позволяет приложению отправлять кадры CAN и CAN FD, однако при чтении из сокета необходимо принимать кадры CAN и CAN FD.
Подробное описание этой константы есть в документации Linux.
Доступность: Linux >= 3.6.
socket.CAN_RAW_JOIN_FILTERS;Константа объединяет примененные фильтры CAN таким образом, что в пространство пользователя передаются только кадры CAN, соответствующие всем заданным фильтрам CAN.
Подробное описание этой константы есть в документации Linux.
Доступность: Linux >= 4.1.
socket.CAN_ISOTP;Константа socket.CAN_ISOTP в семействе протоколов CAN является протоколом ISO-TP (ISO 15765-2). Константы ISO-TP подробно описаны в документации Linux.
Доступность: Linux >= 2.6.25.
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.
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, совпадающие с константами, экспортируемыми API-интерфейсом языка C. Для получения дополнительной информации смотрите документацию по TIPC .
socket.AF_ALG;socket.SOL_ALG;socket.ALG_ *;Доступность: Linux >= 2.6.38.
socket.AF_VSOCK;socket.IOCTL_VM_SOCKETS_GET_LOCAL_CID;socket.VMADDR *;socket.SO_VM *;Доступность: Linux = 4.8.
Новое в Python 3.7.
socket.AF_LINK;socket.has_ipv6;Эта константа содержит логическое значение, которое указывает, поддерживается ли IPv6 на этой платформе.
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.
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