Я пишу программу для передачи файлов через локальные компьютеры, давно ищу методы передачи файлов в Delphi. Я обнаружил, что UDP - хорошее решение, но есть проблема: в каждом примере или статье, которые я обнаружил, была клиентская программа рядом с серверной программой, но моя программа должна отправлять и получать на / с каждого компьютера в сети, нет конкретный сервер или клиент, что-то вроде p2p, я не хочу делать компьютер Сервером, а другой - Клиентом, что мне делать? Я тоже искал статьи Indy, он тоже работает в режиме Server / Client (насколько я обнаружил).
Передача файлов UDP в Delphi
Ответы (2)
Взгляните на компоненты Indy TIdTrivialFTP
и TIdTrivialFTPServer
. TFTP - это протокол передачи файлов на основе UDP.
UDP может работать в режиме широковещательной передачи, что вам и нужно. Но такие широковещательные рассылки UDP не маршрутизируются за пределы текущей сети (т.е. они блокируются маршрутизаторами), поэтому вам нужно реализовать что-то более сложное, если ваш проект должен быть доступен за пределами основной физической сети.
Не изобретайте велосипед! Если вы хотите увидеть какой-нибудь рабочий источник, реализующий эту концепцию, см. Галактика Ареса:
«Проект самоорганизующейся сети p2p Delphi с широкими возможностями масштабирования и быстрой системой поиска широковещательного типа. Клиент поддерживает передачу файлов из нескольких источников, частичное совместное использование файлов, встроенный аудио / видеоплеер и децентрализованные чаты».
Файлы доступны на SourceForge. Вы можете повторно использовать / адаптировать сетевой уровень P2P для своих нужд, но обратите внимание на условия лицензии исходного кода Ares, если вы используете его в своих проектах.