Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-1106660717
Vaitek
2005-01-25 16:45
2005.02.13
А вот интересно...


14-1106670254
Шишкин Илья
2005-01-25 19:24
2005.02.13
КПК в Москве


14-1106585384
Pat
2005-01-24 19:49
2005.02.13
Настройка сети


14-1106391471
TUser
2005-01-22 13:57
2005.02.13
Гитара


14-1106563671
Чеширский_Кот
2005-01-24 13:47
2005.02.13
500-я ошибка: избирательное поведение сайта Мастеров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский