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Сообщить о неточности