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

Вниз

сообжение сервису.   Найти похожие ветки 

 
SergeyDon   (2005-07-13 17:57) [0]

Как послать сообщение сервису?
вообще это возможно, если у сервиса выключена опция:
Allow service to interact with desktop.

подскажите как лучше организовать общение сервиса и програм?


 
BiN ©   (2005-07-13 18:07) [1]

LPC, Pipes, MMF+events/mutex/semaphores


 
Fay ©   (2005-07-13 18:50) [2]

2 SergeyDon   (13.07.05 17:57)
Ч/з реестр


 
Fay ©   (2005-07-13 18:51) [3]

2 SergeyDon   (13.07.05 17:57)
Общение - это что?


 
Юрий Зотов ©   (2005-07-13 21:27) [4]

> SergeyDon   (13.07.05 17:57)  

> как лучше организовать общение сервиса и програм?

Если речь идет об изменении режимов (настроек) сервиса, то есть такой вармант - программа куда-то их пишет (например, в реестр) и перезапускает сервис, а тот при старте считывает настройки.


 
Fay ©   (2005-07-14 09:27) [5]

Юрий Зотов ©   (13.07.05 21:27) [4]
... , либо сервис сам отслеживает изменение реестра.


 
SergeyDon   (2005-07-14 12:26) [6]

Сообшения имелось в виду обмен информацией например
приложение: "Сервис, ты есть?" (думаю можно Mutex использовать)
приложение -> сервису : "Сервис, ты завис?"
сервис -> приложению : "Работаю ОК"
приложение -> сервису : "Дай статус потоков"
сервис -> приложению : "3 клиента на порту 8001, 2 клиента на порту 8003, 4 канала связи используется, поток расчёта 84% выполнено."

что то в этом духе.
реально сделано через сокет, но может есть идеи лучше?

to Bin: что значит LPC?
какой выигреш Pipe перед сокетом?


 
BiN ©   (2005-07-14 12:40) [7]

SergeyDon   (14.07.05 12:26) [6]

to Bin: что значит LPC?


Local Procedure Call - имхо, этот метод проще, чем использование именованных каналов. Но и работает он в пределах только одной рабочей станции.

какой выигреш Pipe перед сокетом?
Говорить о выигрыше в данном случае - некорректно. Им. каналы - это файловая система, а сокеты - лишь транспорт.


 
SergeyDon   (2005-07-14 13:06) [8]

что то туплю ничего не попадается по Local Procedure Call
ткните носом где почитать.


 
SergeyDon   (2005-07-14 13:11) [9]

а типа SendMessage(?, WM_COPYDATA, ...) можно тут как нибудь прикрутить?


 
BiN ©   (2005-07-14 13:15) [10]

http://www.google.ru/search?hl=ru&q=NtCreatePort+NtConnectPort&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=


 
Digitman ©   (2005-07-14 13:20) [11]


> SergeyDon   (14.07.05 13:11) [9]



> SendMessage(?, WM_COPYDATA, ...) можно тут как нибудь прикрутить


не получится.

ты же сам сказал, что опция взаимодействия с раб.столом не установлена

можно, конечно, воспользоваться PostThreadMessage(), но она во-первых асинхронная, во-вторых для ее вызова нужно знать id трэда-приемника сообщения, что достаточно проблематично в случае инф.обмена между сервисом и контролирующим его приложением

так что не задумывайся и бери пайпы на вооружение - это решение универсальное и в реализации совсем не сложное


 
Slym ©   (2005-07-14 15:05) [12]

Лучше Socket в этом плане не придумали
Достоинства:
1. Клиент может подключиться с другого компа!
2. Нет ограничений по доступу(правам) пример NamedPipe требует настройки в этом плане.
3. Нет ограничения по количеству клиентов (у NamedPipe ограничение выставляется в момент создания)
4. Нет привязки к ОС клиента (можно из под Linux по телнет если протокол текстовый)
5. Нет привязки к локальной сети, т.е. клиент может зайти из Инета
И прочее!


 
Slym ©   (2005-07-14 15:08) [13]

А реализовать HTTP протокол на соке не так иж тяжело...
Тогда савсем кайфа: ЗаходишЪ браузером, из дома...
Он у тебя пароль спрашивает... Ты вводишЪ... И стат у тебя на экране в красивых Gridах


 
Fay ©   (2005-07-14 18:08) [14]

2 Slym ©   (14.07.05 15:05) [12]

>> 1. Клиент может подключиться с другого компа!
Достоинство несомненное, по не отличительное.

>> 2. Нет ограничений по доступу(правам) пример NamedPipe требует настройки в этом плане.
>> 5. Нет привязки к локальной сети, т.е. клиент может зайти из Инета
Очень странная пара преимуществ.

Неясно одно - какого лешего для конфигурирования сервиса подключаться непосредственно к сервису большой толпой из разных сетей?


 
Slym ©   (2005-07-15 05:14) [15]

2 Fay ©   (14.07.05 18:08) [14]

Отнюдь не странная - а нормальная.
2. Можешь зайти от любого пользователя от любой операционки!
5. При правильных настройках и не пустой голове на плечах безопасность наладить можно (пароли там всякие), а можно и SSL присобачить-это плевое дело (опять таки при не пустой голове)



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.041 c
14-1123941755
darvin
2005-08-13 18:02
2005.09.04
Компонент - древовидный список


1-1123165458
VID
2005-08-04 18:24
2005.09.04
ДЛЯ ПРОФИ. OleContainer и его OleObject. У них недопонимание :)


1-1123677276
3asys
2005-08-10 16:34
2005.09.04
crpe32.pas


14-1123490289
ocean
2005-08-08 12:38
2005.09.04
Реальные встречи


14-1123090305
Посетитель
2005-08-03 21:31
2005.09.04
Начинаю новую жизнь