Python Glossary English

все Python 3socketфункция

socket.fromfd()

создание сокетов

Создаёт объект сокета из готового файлового дескриптора, предварительно дублируя его.

Синтаксис

sock = socket.fromfd(fd, family, type, proto=0)

Дескриптор копируется (dup), поэтому у исходного и нового объекта разные номера и жизнь у них раздельная: закрытие одного не закрывает другой, закрыть нужно оба. Семейство и тип Python не проверяет — переданные неверно, они заставят объект врать о себе. Если дескриптор надо не скопировать, а забрать во владение, пишут socket.socket(fileno=fd).

Примеры

import socket
a, b = socket.socketpair()
c = socket.fromfd(a.fileno(), a.family, a.type)
print(c.fileno() != a.fileno())  # → True — это копия дескриптора
a.close()
c.sendall(b'still open')
print(b.recv(1024))  # → b'still open'
c.close()
b.close()

См. также

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