Мы сохранили весь контент, но добавить что-то новое уже нельзя
Как в языках программирования работают функции нетворкинга и работы с файлами?
Сложение, умножение, сдвиги, классы и интерфейсы - все понятно. Но каким образом язык программирования работает с файлами? В Java к примеру в конструктор класса передаётся путь к файлу в виде строки, и I/O Stream каким то образом получает доступ к этому файлу. С URL тот же вопрос.
Openstack DevOps and IBM/Informix Certified DBA... · 6 апр 2022
Python предоставляет два уровня доступа к сетевым службам. На низком уровне вы можете получить доступ к базовой поддержке сокетов в базовой операционной системе, что позволяет вам реализовывать клиенты и серверы как для протоколов, ориентированных на соединение, так и для протоколов без установления соединения. В Python также есть библиотеки, обеспечивающие высокоуровневый доступ к определенным сетевым протоколам прикладного уровня, таким как FTP, HTTP и т.д. Эта глава дает вам представление о самой известной концепции в сети — программировании сокетов.
Что такое сокеты?
Сокеты — это конечные точки двунаправленного канала связи. Сокеты могут взаимодействовать внутри процесса, между процессами на одном компьютере или между процессами на разных континентах.Сокеты могут быть реализованы через ряд различных типов каналов: сокеты домена Unix, TCP, UDP и т. д. Библиотека сокетов предоставляет специальные классы для обработки общих транспортов, а также общий интерфейс для обработки остальных.
Простой сервер
Для написания интернет-серверов мы используем функцию сокета, доступную в модуле сокета, для создания объекта сокета. Затем объект сокета используется для вызова других функций для настройки сервера сокетов.
Теперь вызовите функцию bind(hostname, port), чтобы указать порт для вашей службы на данном хосте.
Затем вызовите метод accept возвращаемого объекта. Этот метод ожидает, пока клиент подключится к указанному вами порту, а затем возвращает объект подключения, представляющий подключение к этому клиенту.
Простой клиент
Давайте напишем очень простую клиентскую программу, которая открывает соединение с заданным портом 12345 и заданным хостом. Очень просто создать клиент сокета, используя функцию модуля сокета Python.
socket.connect(имя хоста, порт) открывает TCP-соединение с именем хоста на порту. Когда у вас открыт сокет, вы можете читать его, как любой объект ввода-вывода. Когда закончите, не забудьте закрыть его, как вы бы закрыли файл.
Следующий код представляет собой очень простой клиент, который подключается к заданному хосту и порту, считывает любые доступные данные из сокета и затем выходит:
Все операционные системы имеют низкоуровневый функционал для работы с файлами и сетью. Причём для разных платформ этот функционал разный. Языки программирования высокого уровня, что называется, инкапсулируют (скрывают) его... Читать далее