Передача файла в Python с использованием TCP

Хорошо, я знаю, что задаю очень простой вопрос, но я бродил по сети в поисках хорошего учебника, но, похоже, не нашел его. Может ли кто-нибудь предложить хороший учебник о том, как передавать файлы с клиента на сервер, используя TCP-соединение с python.

Кроме того, если я хочу передать все файлы в каталоге, включая подкаталоги, как лучше всего пройтись по каталогу и отправить каждый файл один за другим через TCP-соединение.

Также конец сервера, где он будет читать файл и сохранять их в соответствующем каталоге в корневой папке.

Хороший учебник, который может помочь мне начать работу с передачей файлов TCP с использованием Python, был бы отличным. Я новичок в python.


person Hassan Jalil    schedule 14.10.2013    source источник
comment
Попробуйте этот ответ @Michael Dillon   -  person Kobi K    schedule 14.10.2013


Ответы (1)


Этот вопрос слишком расплывчатый или слишком широкий для Stackoverflow, поэтому ожидайте отрицательных голосов или закрытия вашего тикета. Но я хотел бы указать на дорожную карту того, что вы хотите сделать.

Передача одного файла:

  1. Откройте сокет для прослушивания на стороне приемника.
  2. Подключитесь к этому прослушивателю с отправляющей стороны, открыв сокет.
  3. Прочитайте содержимое файла по частям и запишите куски в сокет.
  4. На принимающей стороне считываются куски из сокета и записываются на диск в файл.
  5. Когда будет достигнут конец файла, закройте отправляющий сокет.
  6. Когда получатель обнаружит закрытие соединения, закройте файл, в который записываются фрагменты.

Перенос нескольких файлов (деревьев):

Я бы предложил использовать существующие инструменты, такие как tar, через модуль subprocess для создания единого потока из существующего файлового дерева или списка файлов. Затем передайте этот поток способом, описанным выше. На принимающей стороне снова распакуйте поток через модуль subprocess.

person Alfe    schedule 14.10.2013