Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сообжение сервису. [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо