Хотя эта тема не по теме (этот вопрос на самом деле касается сокетов, а не tkinter), неправильно задана (см. как спросить ) и, возможно, дубликат Отправьте файл через сокеты в Python , вот краткое описание того, что вы должны были сделать для других.
Вообще говоря, передача файлов - это широкая тема, от сжатия, передачи файлов, контрольных сумм и т. Д. Мы сконцентрируемся на том, как передавать данные в целом между двумя компьютерами, используя sockets
, потому что я вижу, что это ваше намерение.
В зависимости от вашей реализации, вы должны отправить запрос другому пользователю на передачу файла. Затем, если он принят (принятие / отклонение должно быть ответом другого пользователя), начните передачу файла.
На первом этапе просто отправьте заголовок, описывающий передачу файла (имя файла, размер и т. Д.). Затем, когда он будет принят, вы отправите поток байтов содержимого.
Вы можете читать файлы в байтах с open(file,'rb')
и open(file,'wb')
для чтения / записи соответственно.
Рекомендуется общаться с метаданными в заголовках, проверять доступность, управлять балансом и т. Д.
Обратите внимание, что использование socket является низкоуровневым интерфейсом для передачи данных. Я не буду изобретать заново; Я бы учился на примерах. См. Отправка файла через TCP-сокеты в публикации Python , в которой показан хороший лаконичный код для передачи файлов. Решение его проблемы (прекращение перевода) дается в ответах на этот пост, но код в целом в порядке. Еще несколько минут поиска в Google приведут к объясненным учебникам.
Удачи вам в приложении!