| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > MailSlot широковещательные сообщения |
| Автор: bass 20.5.2012, 13:07 |
| http://frolov-lib.ru/books/bsp/v27/ch2_4.htm В данной статье написано что можно организовать передачу данных меджу несколькими процессами....... Чето я не чего не понял.............. Нужно от одного клиента передовать нескольким серверам...... Пишу такой код, где в потоке опрашиваю маил слот.......... Если я его запускаю один, то все ок......... А вот если я запускаю второй процесс, то майл слот не опрашиваеться....((((((( hMailslot = CreateMailslot("\\\\.\\mailslot\\SendMessageSlot1",0,MAILSLOT_WAIT_FOREVER,&sa); ReadFile(hMailslot,BufferEventRecev1,1024,&dwBytesRead,(LPOVERLAPPED)NULL); Функция CreateMailslot возвращает -1 ...... Как организовать широковещательную передачу сообщений, коль это возможно... Заранее спасибо..... |
| Автор: feodorv 20.5.2012, 13:33 | ||||
Майлслоты открываются на сервере (как раз функцией CreateMailslot), а клиенты цепляются к майлслоту через CreateFile:
Так что не совсем понятно, что Вы имеете в виду под Кто сервер, кто клиент? Правильно написать так: если я его создаю один (CreateMailslot - функция именно создания слота, в отличии от CreateFile, где слово Create не верно отражает суть этой функции). Естественно, одновременно второй слот с тем же именем Вы создать не сможете:
Добавлено через 2 минуты и 15 секунд Можно посмотреть код ошибки, вызвав GetLastError(). |
| Автор: bass 20.5.2012, 15:25 |
| Я все понимаю может не так выразился..... это написал код сервера.......... Запускаю одинэкземпляр приложения все ок.... Запускаю второй экземпляр приложения возвращает -1............. А хочеться чтобы неслоклько экземпляров приложения получали сообщения........ |
| Автор: bass 20.5.2012, 17:28 |
| Понял выкрутился так создаю сервер имя и цифорка 1 второй если не открываеться с цифоркой два и т.д и клиент посылает 1 = S..... Спасибо... За помощь...... |