Форум: "Потрепаться";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизНужна помощь!!! Найти похожие ветки
← →
КочегинМихаил (2005-02-26 08:51) [0]Я пишу 2 сетевые программы (сервер и клиент). Так вот, у меня такая
проблема. Мне нужно, чтобы программа-сервер передавала строку-команду
программе-клиенту, а та в свою очередь распознавала и выполняла
команду.
Команды типа:
1)присвоить определённое значение какой либо переменной;
2)запустить таймер;
3)выполнить какую либо функцию, заложенную в самой программе-клиенте;
и тому подобное...
Если можете мне помочь, а также посоветовать какие стандартные
компоненты Delphi нужно использовать, то прошу писать мне на e-mail.
--
С уважением, x_dragon@ok.kz
← →
GanibalLector © (2005-02-26 13:03) [1]Компоненты тут не при чем!Тут дело в технологии.
Имя ей COM.Советую приобрести литературу("Delphi и технология СОМ") и на неделю забыться...
← →
вредитель © (2005-02-26 13:24) [2]Сокеты юзай (TClientSocket / TServerSocket). Денек и разобрался (благо delphi Berkley не предполагает, хотя, впрочем, можно и на API).
А конкретно, методы ReceiveBuf & related.
А DCOM по сети - страшная весч. Мало того, что расходы накладные, так и на 95 виндовс его поддержку ставить надо! 95 снова в моде.
А GanibalLector видимо сегодня студента должника съел. Такие коры мочит....
← →
GanibalLector © (2005-02-26 14:59) [3]>А DCOM по сети - страшная весч
Мотивируйте! И еще,что Вы скажете про многопоточный апартамент?
← →
вредитель © (2005-02-26 15:40) [4]Мотивируйте!
АРГУМЕНТИРУЮ.
Все зависит от сложности и надежности создаваемого проекта. DCOM - по сути - ни что иное как удаленный вызов методов. Для этого, дабы быть в одном адресном пространстве, клиент является серверу проксем, реализуя требуемый интерфейс, а тот в свою очередь является ему стабом, происходит любовь и метод выполняется. Создание proxy/stub и маршаллинг влекут за собой некоторые накладные расходы, несколько большие, чем просто слушание того или иного порта, анализ пришедших данных и выполнение требуемых действий (по сравнению с COM не очень надежно, но работает).
И еще,что Вы скажете про многопоточный апартамент?
Геморрой это с большой буквы, ибо синхронизация. Как в прочем и создание COM сервера и возня с его регистрацией. Технология COM, однако, другого метода одновременной работы нескольких клиентов с одним сервером не предоставляет и приходится применять его. Хотя, повторюсь, все зависит от поставленных задач, и если нужен COM, то лучше применять COM+, где гемороя несколько меньше.
← →
Набережных С. © (2005-02-26 16:11) [5]
> вредитель © (26.02.05 15:40) [4]
> Геморрой это с большой буквы, ибо синхронизация. Как в прочем
> и создание COM сервера и возня с его регистрацией. Технология
> COM, однако, другого метода одновременной работы нескольких
> клиентов с одним сервером не предоставляет и приходится
> применять его. Хотя, повторюсь, все зависит от поставленных
> задач, и если нужен COM, то лучше применять COM+, где гемороя
> несколько меньше.
Судя по посту, Вы имеете весьма смутные представления о COM. И особенно, об уровне ее поддержки в Delphi.
А при работе через сокеты не надо синхронизировать? А данные маршалировать не надо? Вручную. А межплатформенная совместимость? А аутентификация? А межверсионная совместимость?
А позвольте полюбопытствовать, в чем именно меньше геморроя в COM+?
Ну, и тут этот MS идиотскую технологию придумал. И чего она так популярна?
Скучно:(
← →
вредитель © (2005-02-26 16:26) [6]О COM в Дельфи имею действительно смутные представления. Хотя имею некоторый опыт реализации и того и другого (C++/ATL), опыт этот не черезчур велик, поэтому могу конечно ошибаться.
Хотя я уже написал, что все зависит от сложности поставленных задач, и на мой взгляд, для простенькой программки, мониторящей состояние клиентов или даже клиента, создание COM сервера (если в Delphi это просто, снимаю шляпу) - это черезчур.
← →
Набережных С. © (2005-02-26 16:42) [7]
> вредитель © (26.02.05 16:26) [6]
В вопросе речь шла о вызове методов, а не простеньком мониторе. Там, где протокол прост, я тоже считаю СОМ слишком тяжеловесной.
← →
GanibalLector © (2005-02-26 16:50) [8]>Сокеты юзай (TClientSocket / TServerSocket)
Я прошу прощения,но что-то в палитре не нашел.У меня Д5.И,повторюсь,как на счет многопоточного апартамента?Можно ли используя сабж(TClientSocket / TServerSocket) получить его?
← →
DiamondShark © (2005-02-26 17:00) [9]
> И,повторюсь,как на счет многопоточного апартамента?Можно
> ли используя сабж(TClientSocket / TServerSocket) получить
> его?
Этакакэта?
← →
вредитель © (2005-02-26 17:02) [10]unit ScktComp
See help
TServerSocketThread
← →
Набережных С. © (2005-02-26 17:12) [11]
> GanibalLector © (26.02.05 16:50) [8]
Апартамент - фишка COM. Зачем он нужен? Он позволяет объекту указать своему клиенту, способен ли объек сам обеспечить безопасность вызова своих методов одновременно из разных потоков, или все вызовы должны быть выстроены в очередь. Если сервер ЕХЕ, то все внешние вызовы - межапартаментные. Внутри, в принципе, ты можешь наплевать на эти требования и вызывать методы объектов из разных потоков напрямую, но это уже твоя ответственность - ведь автор-то ты. Так-же и при использовании сокетов. Только ты знаешь, можно ли напрямую вызывать методы объекта, работающего в одном потоке, из другого потока. Или все-таки требуется синхронизация с кодом вызываемого потока.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.074 c