Главная страница
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.057 c
3-1105716383
SergP.
2005-01-14 18:26
2005.02.13
Поддерживает ли SQL побитовые операции?


1-1107097872
rolex
2005-01-30 18:11
2005.02.13
Как убрать иконку в заголовке окна?


1-1107187755
faost
2005-01-31 19:09
2005.02.13
ProgressBar в ListView


1-1107157336
Neznaika
2005-01-31 10:42
2005.02.13
Baltic_Charset


1-1106722139
Dr. Genius
2005-01-26 09:48
2005.02.13
Путь в ShellTreeView