Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

Нужна помощь!!!   Найти похожие ветки 

 
КочегинМихаил   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.053 c
1-1110143383
Kolan
2005-03-07 00:09
2005.03.20
Скажите на какой закладке лежит ListView ... обыскался уже?


4-1107884471
Фдуч
2005-02-08 20:41
2005.03.20
Что значит Port 60/64?


1-1110184011
Flic
2005-03-07 11:26
2005.03.20
Image


1-1109742148
SteppesSon
2005-03-02 08:42
2005.03.20
обновление программ


3-1108749618
Urvin
2005-02-18 21:00
2005.03.20
Поймать отключение сервера