Loading year2/source/lessons/07-threads.rst +17 −1 Original line number Diff line number Diff line Loading @@ -6,13 +6,19 @@ Передачу файлов с помощью сокетов можно реализовать по следующей схеме: 1. Настраиваем сокет, устанавливаем соединение. 2. **На отправляющей стороне**: - открываем файл на чтение в режиме байтового чтения (``'rb'``). - построчно передаём файл принимающей стороне (``'rb'``). - построчно передаём файл принимающей стороне. 3. **На принимающей стороне**: - открываем файл на запись в режиме байтовой записи (``'wb'``). - построчно пишем в файл всё, что получаем от передающей стороны. 4. Закрываем файлы и соединение. Передача файлов байтовыми строками позволяет пересылать любые файлы, независимо от их типа, расширения и т.п. Пример кода для отправки файла с клиента серверу. Сервер:: Loading Loading @@ -91,3 +97,13 @@ f.close() sock.close() Задания ---------- 1. Используя код из урока, реализуйте возможность отправлять файл с сервера клиенту. 2. Реализуйте возможность передачи файлов как от клиента серверу, так и от сервера клиенту: - должна быть возможность выбрать режим передачи (1 - от клиента серверу, 2 - от сервера клиенту); - оформите код с помощью функций; Loading
year2/source/lessons/07-threads.rst +17 −1 Original line number Diff line number Diff line Loading @@ -6,13 +6,19 @@ Передачу файлов с помощью сокетов можно реализовать по следующей схеме: 1. Настраиваем сокет, устанавливаем соединение. 2. **На отправляющей стороне**: - открываем файл на чтение в режиме байтового чтения (``'rb'``). - построчно передаём файл принимающей стороне (``'rb'``). - построчно передаём файл принимающей стороне. 3. **На принимающей стороне**: - открываем файл на запись в режиме байтовой записи (``'wb'``). - построчно пишем в файл всё, что получаем от передающей стороны. 4. Закрываем файлы и соединение. Передача файлов байтовыми строками позволяет пересылать любые файлы, независимо от их типа, расширения и т.п. Пример кода для отправки файла с клиента серверу. Сервер:: Loading Loading @@ -91,3 +97,13 @@ f.close() sock.close() Задания ---------- 1. Используя код из урока, реализуйте возможность отправлять файл с сервера клиенту. 2. Реализуйте возможность передачи файлов как от клиента серверу, так и от сервера клиенту: - должна быть возможность выбрать режим передачи (1 - от клиента серверу, 2 - от сервера клиенту); - оформите код с помощью функций;