socket.makefile ()
Last updated
Was this helpful?
Last updated
Was this helpful?
Возвращает объект файла, связанный с сокетом. Точный возвращаемый тип зависит от аргументов, переданных makefile (). Эти аргументы интерпретируются так же, как и встроенной функцией , за исключением того, что поддерживаются только значения режима 'r'
(по умолчанию), 'w'
и 'b'
.
Сокет должен находиться в режиме блокировки; у него может быть тайм-аут, но внутренний буфер файлового объекта может оказаться в несогласованном состоянии, если произойдет тайм-аут.
Закрытие файлового объекта, возвращенного makefile (), не приведет к закрытию исходного сокета, если все остальные файловые объекты не были закрыты и для объекта сокета не был вызван .
Изменено в версии 3.5: если системный вызов прерывается и обработчик сигнала не вызывает исключения, метод теперь повторяет системный вызов вместо того, чтобы вызывать исключение InterruptedError (объяснение см. в ).
Преобразование двоичных данных в текст. Простые сокеты передают данные в виде строк двоичных байтов, но благодаря тому, что файлы-обертки открываются в текстовом режиме, при выполнении операций ввода-вывода их содержимое автоматически преобразуется в текст. Файлы-обертки должны открываться в текстовом режиме, когда доступ к ним осуществляется с применением инструментов для работы со стандартными потоками ввода-вывода, таких как встроенная функция print, которая выводит текстовые строки (файлы, открытые в двоичном режиме, напротив, работают со строками байтов). Однако при непосредственном использовании сокетов, текст по-прежнему требуется кодировать в строки байтов вручную.