Главная страница
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.038 c
1-1107089778
ТехникПТО
2005-01-30 15:56
2005.02.13
Как удалить определенный файл??


1-1106812418
bon
2005-01-27 10:53
2005.02.13
компонент Outlook bar для Делфи7


1-1106908602
zrv
2005-01-28 13:36
2005.02.13
Сохранение Rave-отчета в ndr-файл


1-1106821814
Ega23
2005-01-27 13:30
2005.02.13
Копирование данных из TStream в буффер.


4-1104165294
FreeFighter
2004-12-27 19:34
2005.02.13
ShellExexute