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

Вниз

NamedPipe   Найти похожие ветки 

 
andrey__   (2004-11-03 16:26) [0]

Вопрос такой: Подскажите можно ли после того как произошёл разрыв соединения между сервером канала и клиентом (клиент был закрыт) новому клиенту соединится к этому же экземпляру канала сервера.


 
Игорь Шевченко ©   (2004-11-03 16:40) [1]

Можно.


 
Digitman ©   (2004-11-03 16:56) [2]


> andrey__   (03.11.04 16:26)  


можно.

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


 
andrey__   (2004-11-03 17:07) [3]

подскажи пожалуста как это сделать:
- каким образом сервер узнает что его экземпляр канала освободился
-  для соединения нового клиента к освободившемуся экземпляру канала сервер повторно должен использовать ConnectNamedPipe(hPipe, nil) ?


 
Digitman ©   (2004-11-03 17:30) [4]


> для соединения нового клиента к освободившемуся экземпляру
> канала сервер повторно должен использовать ConnectNamedPipe(hPipe,
> nil) ?


да, разумеется ... если ты не сделал перед этим Closehandle(hPipe)

насчет nil 2-м параметром - это требует отдельной дискуссии.


> каким образом сервер узнает что его экземпляр канала освободился


все зависит от синхр. или асинхр. режима использования пайпа.
конкретизируй режим.


 
andrey__   (2004-11-04 11:38) [5]

>Digitman ©   (03.11.04 17:30) [4]

Более подробно опишу свою задачу: 2-ва приложения
- одно сервис работает постоянно
- второе програмка управления работой сервиса (изменение параметров работы)
Общение между приложениями решил организовать посредством NamedPipe

Т.к. информации я нашёл мало по NamedPipe (может плохо искал) отталкивался я в своей работе от статьи http://www.delphimaster.ru/articles/named_pipes/index.html#PageTop (это на случай если вы читали)

В ней используется асинхронный режим (если у вас есть сомнения насчёт того что он плохо подходит для моей задачи прошу написать мне об этом).


 
Digitman ©   (2004-11-04 12:26) [6]


> - одно сервис работает постоянно
> - второе програмка управления работой сервиса (изменение
> параметров работы)
> Общение между приложениями решил организовать посредством
> NamedPipe


это понятно.
ничего против идеи не имею - пайпы значит пайпы ..


> В ней используется асинхронный режим (если у вас есть сомнения
> насчёт того что он плохо подходит для моей задачи прошу
> написать мне об этом).


сомнений у меня никаких нет.

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

касаемо выбора упомянутого режима можно лишь дать самые общие рекомендации.

например, в случае если приложение однопоточное и при этом нет гарантий "мгновенности" выполнения требуемых транспортных операций (коннекта/дисконнекта/ввода/вывода), предпочтение следует отдать асинхронному режиму и строить трансп.логику уже с учетом асинхронности трансп.событий ... в противных случаях можно задействовать и синхр.режим, однако ничто не мешает и в этих случаях пользовать асинхронную модель

асинхр.модель (с задействованием механизма уведомлений об одном или более событиях объекта) как нельзя хорошо подходит в случаях, когда трэд не является искл-но транспортным, как, например, основной трэд GUI-процесса, который, как известно, обязан кроме всего прочего ожидать/выбирать/диспетчеризовать/обрабатывать сообщения системы о событиях ввода/вывода пользовательского уровня


 
Игорь Шевченко ©   (2004-11-04 12:45) [7]

andrey__   (04.11.04 11:38) [5]

Абсолютно разумная идея.

Пример ее реализации можно найти в Рихтер,Кларк "Программирование серверных приложений" или в Platform SDK\Samples\...\Service


 
kaZaNoVa ©   (2004-11-04 17:41) [8]

а я обычно на сокетах всё делаю :)))



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

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

Наверх




Память: 0.47 MB
Время: 0.036 c
3-1100855013
Geoji
2004-11-19 12:03
2004.12.19
Выделить часть


4-1099662483
Ivolg
2004-11-05 16:48
2004.12.19
Перехват


1-1101937791
Profi
2004-12-02 00:49
2004.12.19
Сохранения в файл


14-1100500058
Cobalt
2004-11-15 09:27
2004.12.19
Больные депутаты


3-1100943105
Andrey V.
2004-11-20 12:31
2004.12.19
Не работает FB1.5





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский