Форум: "Corba";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизОбмен данными по локальной сети Найти похожие ветки
← →
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 вся ветка
Форум: "Corba";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c