Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Обмен данными по локальной сети   Найти похожие ветки 

 
Hino   (2004-01-01 20:35) [0]

Вопрос. Каким образом лучше всего обмениваться файлами между сервером и несколькими клиентскими компьютерами? Почитав здесь в форуме, пришел к выводу, что распространены 2 способа: Socket и DCom. Подскажите, в каком из этих двух вариантов лучше всего реализовать свой проект (Delphi 7)?
Суть задачи примерно в следующем: есть компьютер, на котором лежит куча графических и текстовых файлов. С других компьютеров нужно иметь возможность увидеть эти файлы, возможно сделать какие-то изменения в текстовых файлах и сделать сохранения. БД и Sharing исключены. Коннекты идут одновременно.

Спасибо.


 
clickmaker ©   (2004-02-13 12:17) [1]

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


 
just me   (2004-02-13 14:24) [2]

А можно еще заюзать Intranet-технологии, поставить в локальной сети Веб-сервер (IIS например) и пользоваться FTP.
А еще в виндах начиная с W2K есть такая мощная штука, как COM+ Pipes, утверждается, что это чуть ли не наиболее мощный способ паредачи данных. Но примеров никаких толковых не нашел пока...


 
kostik78ua   (2004-02-13 15:18) [3]

наверное лучше сокеты.
а еще есть средства pipes и mailslot


 
Леонов Александр   (2004-04-15 16:34) [4]

Для обмена информацией между приложениями, работяющих как на одной машине, так и в сети, я бы порекомендовал применять что то из продуктов класса MOM (IBM MQSeries, SonicMQ и т.п.).
Очень удобная вещь.

Технология mailslot показалась для меня (на практике конечно) отвратным решением.
Технология pipe - для нее нужена машина класса НТ. 9х м.б. клиентом, а сервером нет.


 
Максим   (2004-04-28 02:26) [5]

А как засунуть файл в OLEVariant? и его потом передавать?


 
clickmaker ©   (2004-04-28 10:12) [6]


> Максим   (28.04.04 02:26) [5]
> А как засунуть файл в OLEVariant? и его потом передавать?

var
 V: OleVariant;
 Stream: TFileStream;
 P: Pointer;

Stream := TFileStream.Create(FileName, fmOpenRead);
try
 V := VarArrayCreate([0, Stream.Size-1], varByte);
 P := VarArrayLock(V);
 try
   Stream.Read(P^, Stream.Size);
 finally
   VarArrayUnlock(V);
 end;
finally
 Stream.Free;
end;


При этом можно еще заюзать какую-нить библиотеку для сжатия файла в памяти, н-р ZLib


 
vengo   (2004-04-28 11:49) [7]

Если тебе необходимо вносить изменения в файлы, доступ к которым имеют одновременно несколько пользователей, то тебе прийдется рашать кучу проблем, которые уже решены в SQL Server.



Страницы: 1 вся ветка

Текущий архив: 2005.02.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
14-1106457948
Чеширский_Кот
2005-01-23 08:25
2005.02.13
Doxygen


1-1107037644
Dir
2005-01-30 01:27
2005.02.13
Перенос координат в центр Image...


14-1106408181
Artvz
2005-01-22 18:36
2005.02.13
Кто нибудь знает ресурс посвящённый алгоритмам и разработке


14-1106243813
madmouse
2005-01-20 20:56
2005.02.13
Вопрос


3-1105678872
БДешник
2005-01-14 08:01
2005.02.13
Работа с InterBase