Как передать файлы в программе на Python с использованием UDP-сокетов - PullRequest
3 голосов
/ 11 августа 2011

Итак, у меня есть программа, состоящая из двух процессов, которые часто выполняются на разных машинах.Один - сервер дисплея, другой - контроллер.Прямо сейчас они обмениваются данными с помощью UDP-сокетов дейтаграмм, поскольку пропущенный пакет означает только пропущенный кадр, а TCP-сокеты слишком медленные.Эти компьютеры знают IP-адреса друг друга и знают порты, которые они используют для обмена данными по протоколу UDP.

Я ищу простой в использовании способ передачи файлов с одного на другой в Python.Я на Windows 7, поэтому, если решение для конкретных окон, это приемлемо.Я просто не хочу, чтобы что-то слишком запуталось, открывая несколько разных портов и используя сокеты UDP и TCP одновременно, но если это единственный способ сделать это, то ничего страшного.

Я немного посмотрел на netcopy рецепта ActiveState: http://code.activestate.com/recipes/442521-windows-network-file-transfers/ Он работает хорошо, но зная, куда отправлять файл и получать разрешения на его отправку, до сих пор было сложнотак что это похоже не на то решение, которое я хочу.

Я открыт для сумасшедших / уникальных идей.Кроме того, я довольно новичок в сетевом программировании, поэтому, если я использую какую-либо терминологию неправильно, я прошу прощения.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Я бы не использовал UDP для передачи файлов, точка. Было бы менее сложно открыть сокеты TCP на каждом конце и накатить поверх него собственный протокол передачи файлов, чем реализовать надежную передачу поверх UDP.

Потребуется некоторое управление именами файлов и разрешениями, если вам действительно нужен файл на обоих концах. Вы можете удалить его, если для завершения загрузки требуется только содержимое файла, а не фактический файл в файловой системе.

1 голос
/ 11 августа 2011

Для этого вы можете использовать tftp .

...