Передача файлов по сети

3anop

New member
Joined
Aug 19, 2011
Messages
2
Reaction score
0
Хочу написать минимальный клиент/сервер для передачи файлов в обеих направлениях. Программа будет запущена на двух десктопах и через диалог выбрав файл и нажав кнопку на одном на другом сразу же должен открыться диалог сохранения файла. И наоборот. Файлы как мелкие тхт так и крупные архивы. Канал передачи должен быть защищенным.

Прошу знающих просверить в некоторых моментах.

Для выше описанной задачи какая мода предпочтительна synchronous или asynchronous?

Не имея опыта я не могу найти решение которое было бы оптимальным как со стороны производительности/скорости так и со стороны защищенности да и еще и несложно в реализации (только начал изучать Delphi, стоит D7).
Я вижу два варианта:
1. криптовать файл локально затем передав по обычному каналу розкриптовывать удаленно
2. использовать защищенный канал передачи
Если использовать второй вариант то на каком из вариантов остовиться SSLSocket, HTTPS, FTPS или SSH?

Тхт файлы рыхлые, имеет ли смысл их cжимать перед отправкой и соответственно разжимать удаленно?
 

saido

New member
Joined
Apr 17, 2011
Messages
4
Reaction score
0
Используй ssh, под дельфи есть компоненты
 

#ib

Member
Joined
May 10, 2005
Messages
12
Reaction score
3
Age
47
Location
Kiev
Можешь попробовать использовать сразу архиватор -- можно и консольный вариант -- так убьешь сразу 2 зайцев -- и сжатие и шифрование. Если же нет -- то можно и шифровать данные -- например с помощью DCPcrypt (хотя проект вроде и умер) или любого другого продукта. По SSL -- мне кажется проще самому шифровать -- можно получить намного более гибкое решение и не привязываться к его реализации в конкретном компоненте -- тем более в том же Инди 9 и 10 они внесли большие изменения в его применение

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

А так решений и компонентов множество -- от сокетов до FTP и от Инди до ICS.

---
До этого не сильно работал с сетевыми протоколами -- но как раз сейчас вынужден реализовать отправку данных в реал-тайме -- так что может что и подскажу. Литературы по этому вопросу мало -- хотя можешь почитать для начала Глубины Indy (Перевод: А.П. Подгорецкий) -- в Инете она есть
 

3anop

New member
Joined
Aug 19, 2011
Messages
2
Reaction score
0
Можешь попробовать использовать сразу архиватор -- можно и консольный вариант -- так убьешь сразу 2 зайцев -- и сжатие и шифрование.
Я вот не знаю как архивировать с паролем в потоке, т.е. чтоб файл начал отправляться еще не дожидаясь окончания архивации и соответственно на той стороне чтоб началась разархивация с получением первых блоков.
Такое вообще возможно?

По SSL -- мне кажется проще самому шифровать -- можно получить намного более гибкое решение...
SSL врядли буду использовать, скорее всего SSH.

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

Спасибо огромное за подсказки.
 

#ib

Member
Joined
May 10, 2005
Messages
12
Reaction score
3
Age
47
Location
Kiev
Попробывать можно -- только я уже давно работал с архиваторами. Если просто шифровать на лету каждый блок -- то это намного проще

По шифрованию папок -- или все ручками прописывать -- или не заморачиваться и взять готовые компоненты которые позволяют шифровать на лету -- вот только сомневаючь что они будут отдавать поток до окончания шифрования.

----
Не заходил довольно долго на форум -- глянь личку я сброшу тебе контактную информацию -- если есть вопросы -- стучи
 

andrewmrn

New member
Joined
Jan 31, 2009
Messages
4
Reaction score
0
Age
58
Непонятно зачем такие сложности. Тот же инди - IdHTTP - простая передача. Фвйлом, без блоков и тд. Архивирование отдельно zipforge. Шифрование - любая функция или компонента
 

alexdnepro

Premium
Joined
Feb 18, 2010
Messages
99
Reaction score
1
Как по мне можно и через сокеты сделать, шифровать поток при отправке и декодировать при приеме.
 

StrikerLoner

Member
Joined
Jul 24, 2009
Messages
10
Reaction score
0
Age
44
через инди IdHTTP с шифорованием и включеной опцией по сжатию gzip все что хотели то и получили
 

alchemist131

Member
Joined
Nov 16, 2010
Messages
10
Reaction score
0
через сокеты все просто - отправка одной API функцией TransmitFile
с приемом придется повозиться
зато можно своими руками реализовать почти любую степень защиты
 

arnold99

Member
Joined
May 7, 2006
Messages
21
Reaction score
1
Location
Moskva
RealThinClient где то тут пробегало. Там шифрование точно есть и примеры передачи файлов
 

borisuy

New member
Joined
Feb 8, 2012
Messages
4
Reaction score
0
Можно просто Indy взять для передачи файлов...
 
Top