Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.188 c
1-1124110639
tormoz
2005-08-15 16:57
2005.09.04
Видимость отдельных закладок в TabbedNotebook


2-1076748058
bllem
2004-02-14 11:40
2005.09.04
помогите с треем


1-1123746640
AlexBo
2005-08-11 11:50
2005.09.04
Экстренный выход из процедуры


3-1122021010
hursand
2005-07-22 12:30
2005.09.04
Check box в ячеках DBGrid


3-1122436030
rentgen
2005-07-27 07:47
2005.09.04
Номер фильтрованное записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский