![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сообжение сервису. [D7, WinXP]
SergeyDon © (2005-07-13 17:57:00)Как послать сообщение сервису?
вообще это возможно, если у сервиса выключена опция:
Allow service to interact with desktop.
подскажите как лучше организовать общение сервиса и програм?
Slym (2005-07-15 05:14:00) [1]2 Fay © (14.07.05 18:08) [14]
Отнюдь не странная - а нормальная.
2. Можешь зайти от любого пользователя от любой операционки!
5. При правильных настройках и не пустой голове на плечах безопасность наладить можно (пароли там всякие), а можно и SSL присобачить-это плевое дело (опять таки при не пустой голове)
Fay (2005-07-14 18:08:00) [2]2 Slym © (14.07.05 15:05) [12]
>> 1. Клиент может подключиться с другого компа!
Достоинство несомненное, по не отличительное.
>> 2. Нет ограничений по доступу(правам) пример NamedPipe требует настройки в этом плане.
>> 5. Нет привязки к локальной сети, т.е. клиент может зайти из Инета
Очень странная пара преимуществ.
Неясно одно - какого лешего для конфигурирования сервиса подключаться непосредственно к сервису большой толпой из разных сетей?
Slym (2005-07-14 15:08:00) [3]А реализовать HTTP протокол на соке не так иж тяжело...
Тогда савсем кайфа: ЗаходишЪ браузером, из дома...
Он у тебя пароль спрашивает... Ты вводишЪ... И стат у тебя на экране в красивых Gridах
Slym (2005-07-14 15:05:00) [4]Лучше Socket в этом плане не придумали
Достоинства:
1. Клиент может подключиться с другого компа!
2. Нет ограничений по доступу(правам) пример NamedPipe требует настройки в этом плане.
3. Нет ограничения по количеству клиентов (у NamedPipe ограничение выставляется в момент создания)
4. Нет привязки к ОС клиента (можно из под Linux по телнет если протокол текстовый)
5. Нет привязки к локальной сети, т.е. клиент может зайти из Инета
И прочее!
Digitman (2005-07-14 13:20:00) [5]
> SergeyDon (14.07.05 13:11) [9]
> SendMessage(?, WM_COPYDATA, ...) можно тут как нибудь прикрутить
не получится.
ты же сам сказал, что опция взаимодействия с раб.столом не установлена
можно, конечно, воспользоваться PostThreadMessage(), но она во-первых асинхронная, во-вторых для ее вызова нужно знать id трэда-приемника сообщения, что достаточно проблематично в случае инф.обмена между сервисом и контролирующим его приложением
так что не задумывайся и бери пайпы на вооружение - это решение универсальное и в реализации совсем не сложное
BiN (2005-07-14 13:15:00) [6]http://www.google.ru/search?hl=ru&q=NtCreatePort+NtConnectPort&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=
SergeyDon (2005-07-14 13:11:00) [7]а типа SendMessage(?, WM_COPYDATA, ...) можно тут как нибудь прикрутить?
SergeyDon (2005-07-14 13:06:00) [8]что то туплю ничего не попадается по Local Procedure Call
ткните носом где почитать.
BiN (2005-07-14 12:40:00) [9]SergeyDon (14.07.05 12:26) [6]
to Bin: что значит LPC?
Local Procedure Call - имхо, этот метод проще, чем использование именованных каналов. Но и работает он в пределах только одной рабочей станции.
какой выигреш Pipe перед сокетом?
Говорить о выигрыше в данном случае - некорректно. Им. каналы - это файловая система, а сокеты - лишь транспорт.
SergeyDon (2005-07-14 12:26:00) [10]Сообшения имелось в виду обмен информацией например
приложение: "Сервис, ты есть?" (думаю можно Mutex использовать)
приложение -> сервису : "Сервис, ты завис?"
сервис -> приложению : "Работаю ОК"
приложение -> сервису : "Дай статус потоков"
сервис -> приложению : "3 клиента на порту 8001, 2 клиента на порту 8003, 4 канала связи используется, поток расчёта 84% выполнено."
что то в этом духе.
реально сделано через сокет, но может есть идеи лучше?
to Bin: что значит LPC?
какой выигреш Pipe перед сокетом?
Fay (2005-07-14 09:27:00) [11]Юрий Зотов © (13.07.05 21:27) [4]
... , либо сервис сам отслеживает изменение реестра.
Юрий Зотов (2005-07-13 21:27:00) [12]> SergeyDon (13.07.05 17:57)
> как лучше организовать общение сервиса и програм?
Если речь идет об изменении режимов (настроек) сервиса, то есть такой вармант - программа куда-то их пишет (например, в реестр) и перезапускает сервис, а тот при старте считывает настройки.
Fay (2005-07-13 18:51:00) [13]2 SergeyDon (13.07.05 17:57)
Общение - это что?
Fay (2005-07-13 18:50:00) [14]2 SergeyDon (13.07.05 17:57)
Ч/з реестр
BiN (2005-07-13 18:07:00) [15]LPC, Pipes, MMF+events/mutex/semaphores