Python Glossary English

Python 3.4+socketпонятие

socket.SocketKind

константы

Перечисление IntEnum типов сокетов: SOCK_STREAM (TCP), SOCK_DGRAM (UDP), SOCK_RAW и других.

Синтаксис

socket.SocketKind.SOCK_STREAM  # то же, что socket.SOCK_STREAM

Атрибут sock.type возвращает член этого перечисления. В Linux к типу можно добавить флаги SOCK_NONBLOCK и SOCK_CLOEXEC, но с 3.7 sock.type их не показывает — сравнение sock.type == SOCK_STREAM по-прежнему верно, а неблокирующий режим проверяют через getblocking() или gettimeout() == 0. Как и у AddressFamily, print() с 3.11 печатает число, имя даёт .name.

Примеры

import socket
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
    print(s.type.name)  # → SOCK_DGRAM
    print(s.type is socket.SOCK_DGRAM)  # → True
import socket
if hasattr(socket, 'SOCK_NONBLOCK'):  # флаг есть только в Linux
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM | socket.SOCK_NONBLOCK)
    print(s.type == socket.SOCK_STREAM)  # → ? True — флаг в type не виден
    print(s.getblocking())  # → ? False
    s.close()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности