![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Здравствуйте!
Мне требуется реализовать обмен текстовыми сообщениями между несколькими процессами. Обеспечить возможность отправки сообщения сразу нескольким адресатам. Реализовать подтверждение приёма сообщения адресатом или, в случае потери сообщения, повторную его передачу. Взаимодействие выполнить с помощью страничного файла. Возник ряд вопросов.. Пожалуйста, помогите разобраться! Сначала хочу получить список активных процессов, вывести, скажем, на ListBox и выбрать процессы, которые будут приёмниками текстовых сообщений (а как можно в ListBox осуществить множестсвенный выбор? если вообще можно). Далее можно из моего приложения открыть файл. Теперь в процессе-передатчике создаём в памяти проекцию открытого дискового файла и отображаем её на адресное пространство процесса-отправителя с помощью CreateFileMapping(), где будем использовать дескриптор открытого файла... Процессы же приёмники (выбранные в ListBox) по нажатию кнопки должны отобразить проекцию страничного файла на своё адресное пространство и прочитать данные, которые подлежат передаче...а как это осуществить? мне на понятно...И как это осуществить с учётом того, что получателей должно быть несколько?? И как я понимаю, процесс-приёмник не должен начинать читать из памяти данные раньше, чем их туда запишет отправитель...А как это должно выглядеть? (использовать объекты синхронизации?) И последнее...В каком виде можно организовать подтверждение приёма сообщений, при чём чтоб было понятно, от какого процесса-приёмника пришло это подтверждение?? |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Теперь насчёт повторной отправки сообщения..в случае неудачного исхода... А что, если в первый раз отсылка была неудачной, то повторная посылка окажется успешной? Ну, вызовешь ты еще раз OnClickButCreateMap, и что? Если у тебя (к примеру) не было прав доступа в папку, так их и не будет. Если не было места на диске, оно из ниоткуда не появится.Надо смотреть, в чем причина отказа в посылке сообщения, и убирать причину, а не просто повторять попытку, которая обречена на провал. GetLastError после возврата признака неудачного выполнения какой-то функции, и принятие мер по решению проблемы, указанной в коде ошибки - единственное, что могу предложить... |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 0:24 |