Python Glossary English

Python 3.7+socketфункция

socket.close()

дескрипторы и служебные данные

Закрывает сокет по голому файловому дескриптору — аналог os.close(), работающий с сокетами и на Windows.

Синтаксис

socket.close(fd)

Нужна, когда у вас число, а не объект: после sock.detach() или дескриптор из чужого кода. На Windows os.close() сокеты не закрывает, отсюда и функция. Закрывать дескриптор, которым ещё владеет объект сокета, нельзя: объект позже закроет тот же номер, который ОС успеет отдать другому файлу.

Примеры

import socket
a, b = socket.socketpair()
fd = a.detach()  # объект больше не владеет дескриптором
print(a.fileno())  # → -1
socket.close(fd)
b.settimeout(1)
print(b.recv(1024))  # → b'' — другая сторона закрыта
b.close()

См. также

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