Конференция "WinAPI" » Двухсторонний обмен между приложением и сервисом [D7, Win2k, WinXP]
 
  • kotyara12 (01.03.11 12:17) [0]
    Задача такова: из приложения передать сервису команду и дождаться ее выполнения. Кроме того, в процессе выполнения сервис должен возвращать приложению протокол выполнения и прочие данные. Клиентское приложение после отправки команды, в свою очередь, должно приостановить свое выполнение и в цикле принимать данные от сервиса.

    ВОПРОС: Какой метод обмена данными (pipes, dde, wm_copydata и т.д.) правильнее использовать в данном случае.

    Спасибо.

    ЗЫ: Буду весьма признателен за ссылки, где почитать на эту тему.
  • Сергей М. © (01.03.11 12:21) [1]
    TCP
  • Медвежонок ХМЛ © (01.03.11 12:46) [2]
    http
  • clickmaker © (01.03.11 13:27) [3]
    pipes
  • Rouse_ © (01.03.11 15:26) [4]
    Я в итоге остановился на именованных каналах, чегой-то они мне больше всех понравились + нет проблемы со всякими фаерволами, как в случае использования TCP, никто не мучает пользователя вопросами, разрешить этот порт или нет? :)
    У себя в сервисах использую вот эту реализацию: http://rouse.drkb.ru/network.php#fwiocompletionpipe
  • kotyara12 (01.03.11 16:16) [5]

    > Rouse_ ©


    Спасибо.
  • Eraser © (01.03.11 19:55) [6]
    > [4] Rouse_ ©   (01.03.11 15:26)

    тоже использую pipe'ы, видимо это оптимальный вариант, т.к. его использует и ОС.
  • Leonid Troyanovsky © (01.03.11 20:11) [7]

    > Eraser ©   (01.03.11 19:55) [6]

    > тоже использую pipe'ы, видимо это оптимальный вариант, т.
    > к. его использует и ОС.

    Мне хттп нравится.

    После общения, с интеллектуальным устройством
    чувствуешь себя намного умней.

    --
    Regards, LVT.
  • Eraser © (02.03.11 12:37) [8]
    > [7] Leonid Troyanovsky ©   (01.03.11 20:11)

    А с безопасностью как быть? С пайпами все просто и понятно.
  • Dennis I. Komarov © (02.03.11 16:11) [9]

    > А с безопасностью как быть?

    А что с ней не так?
  • sniknik © (02.03.11 16:48) [10]
    > А с безопасностью как быть?
    хттпs, всем инетом "дырки" ищут. проверено перепроверено.

    > С пайпами все просто и понятно.
    а что не понятного с хттп?

    не путаешь кстати протокол, и данные по нему передающиеся? у меня такое впечатление, что безопасность "всплыла" из-за твоей уверенности, что по хттп только "открытый текст" передается/обязывают передавать.
  • Eraser © (02.03.11 16:54) [11]
    > [10] sniknik ©   (02.03.11 16:48)


    > хттпs

    не в этом даже дело. я про обычные дескрипторы безопасности, чтобы не получилось локального бэкдора. например, легко можно ограничить доступ к пайпу только для админов.
  • Eraser © (02.03.11 16:55) [12]
    про http(s) это не я предложил, но суть понятна. в некоторых случаях действительно оправдано.
  • clickmaker © (02.03.11 17:09) [13]
    > в некоторых случаях действительно оправдано

    когда web-service, например, типа платежной системы.
    А если в локалке или вообще на одном компе, нафига пушка для воробьев?
  • Медвежонок ХМЛ © (02.03.11 17:18) [14]
    нафига пушка для воробьев?

    например чтобы иметь и поддерживать одну пушку, а не две.

    серверный код и клиентскую программу.
  • clickmaker © (02.03.11 17:41) [15]
    > чтобы иметь и поддерживать одну пушку, а не две.
    >
    > серверный код и клиентскую программу

    что-то не совсем уловил мысль...
    мне в хттп видится плюс только в случае потенциального выхода общения клиента с сервером за рамки локалки. А если это 100 лет никому не понадобится?
  • sniknik © (02.03.11 19:40) [16]
    > А если это 100 лет никому не понадобится?
    значит 100 лет никто этим не будет пользоваться... а на 101-й какой нибудь "Архимед" воскликнет "вона, что тута есть оказывается, то что нужно!".

    при примерно равных "трудозатратах"(а то и проще) этого в сравнении с остальным.
  • Медвежонок Пятачок © (02.03.11 22:10) [17]
    что-то не совсем уловил мысль...

    да все просто.
    имеем транспорт в виде пайпа.
    из этого вытекает, что на обоих его концах надо програмировать.

    например клиент придумал новый тип запроса. сервер должен его уметь обрабатывать.

    итого: программируем две "пушки".

    а если будет шттп, то клиентская пушка (браузер) уже готова.
  • clickmaker © (02.03.11 22:19) [18]
    > клиентская пушка (браузер) уже готова

    браузеры, слава Всевышнему, пока еще не заменили все остальные приложения. И в [0] под приложением вовсе не обязательно речь идет о браузере
  • Leonid Troyanovsky © (02.03.11 22:38) [19]

    > clickmaker ©   (02.03.11 22:19) [18]

    > приложения. И в [0] под приложением вовсе не обязательно
    > речь идет о браузере

    Вовсе необязательно.
    Но, приятней из браузера.

    --
    Regards, LVT.
  • clickmaker © (02.03.11 22:42) [20]
    > Но, приятней из браузера.

    ну, tastes differ.
    я вот до сих пор плююсь от браузероподобного интерфейса винды 2008, и без нормального файлманагера типа фара нормально работать не могу
  • Leonid Troyanovsky © (02.03.11 22:59) [21]

    > clickmaker ©   (02.03.11 22:42) [20]

    > > Но, приятней из браузера.
    > ну, tastes differ.

    А где взять нормальный файлманагер,
    скажем, в предгорьях Гималаев?

    --
    Regards, LVT.
  • clickmaker © (02.03.11 23:08) [22]
    > где взять нормальный файлманагер,
    > скажем, в предгорьях Гималаев?

    а где там взять винду или другую ОС, да и вообще компутер? Тибетские ламы по крупицам собирают из воздуха? )
  • Плохиш © (02.03.11 23:15) [23]

    > > А если это 100 лет никому не понадобится?
    > значит 100 лет никто этим не будет пользоваться... а на
    > 101-й какой нибудь "Архимед" воскликнет "вона, что тута
    > есть оказывается, то что нужно!".

    Тогда стоит посмотреть на технологии от мелкогософта, в WCF протоколы в файле конфигурации настраиваются.
  • Leonid Troyanovsky © (02.03.11 23:22) [24]

    > clickmaker ©   (02.03.11 23:08) [22]

    > а где там взять винду или другую ОС

    В коммуникаторах?

    Я последние 5 лет пользую мейл через веб. Эхи через веб.
    И с умными устройствами общаюсь чрез оный.
    Если ж они не поддерживают, то огорчаюсь.

    Ну, а к сервисам меня IIS еще приучил.

    --
    Regards, LVT.
  • Игорь Шевченко © (02.03.11 23:48) [25]
    Тут есть один тонкий момент - в венде приложения внутре себя по пайпам общаются. Зачем-то.
  • Leonid Troyanovsky © (03.03.11 00:12) [26]

    > Игорь Шевченко ©   (02.03.11 23:48) [25]

    > Тут есть один тонкий момент - в венде приложения внутре
    > себя по пайпам общаются. Зачем-то.

    Пусть себе общаются.
    Главное - чтоб меня понимали.

    --
    Regards, LVT.
  • Германн © (03.03.11 01:59) [27]

    > Игорь Шевченко ©   (02.03.11 23:48) [25]
    >
    > Тут есть один тонкий момент - в венде приложения внутре
    > себя по пайпам общаются. Зачем-то.
    >

    Ну мало ли почему какие-то там приложения в "венде" как то там общаются. Возможно их авторы "зазубрили" именно такой способ IPC. А другие они просто не хотят учить?
    Или "руководитель группы" знает и любит только пайпы.

    В чём "тонкость момента", Саид?
  • b z (03.03.11 02:29) [28]

    > я вот до сих пор плююсь от браузероподобного интерфейса
    > винды 2008
    Монитор то хоть протираете? А я вот и на ноуте R2 поставил, не нарадуюсь.  :)
  • Сергей М. © (03.03.11 21:06) [29]
    Вставлю и свои две копейки: стремно как-то месить в одну кучу прикладной уровень и транспортный .. Никто ж не мешает запустить http по пайпам) ..
  • Eraser © (03.03.11 22:27) [30]
    > [27] Германн ©   (03.03.11 01:59)


    > В чём "тонкость момента", Саид?

    в том, что через пайпы проще всего.
  • Сергей М. © (03.03.11 23:31) [31]

    > через пайпы проще всего


    У пайпов кое-каких Виндов есть одна маленькая, но довольно неприятная засада - начатую в треде блокирующую операцию пайпового ввода/вывода невозможно отменить извне никакими штатными способами, кроме вестимо терминации треда, что чревато мемликами.
    Сокетная же блок.операция с легкостью и вполне безопасно разблокируется закрытием сокета из внешнего треда.
  • Германн © (04.03.11 03:25) [32]

    > Eraser ©   (03.03.11 22:27) [30]
    >
    > > [27] Германн ©   (03.03.11 01:59)
    >
    >
    > > В чём "тонкость момента", Саид?
    >
    > в том, что через пайпы проще всего.
    >

    Чем (В чём) проще?
  • Eraser © (04.03.11 11:37) [33]
    > [32] Германн ©   (04.03.11 03:25)

    да практически всем проще.
 
Конференция "WinAPI" » Двухсторонний обмен между приложением и сервисом [D7, Win2k, WinXP]
Есть новые Нет новых   [134431   +12][b:0][p:0.001]