Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Interceptor
Зарегистрирован: 30.07.2002 Сообщения: 1
|
Добавлено: Вт Июл 30 2002 20:47 Заголовок сообщения: Передача сообщений между приложениями |
|
|
Нужно реализовать передачу сообщений между несколькими приложениями в Windows. Есть одно приложение, которое при каком-то событии запускает другое приложение и передает ему какие-либо параметры.
Какими способами это можно реализовать? Сразу скажу, что сообщение может быть произвольной длины и исходных и конечных приложений тоже может быть много, то есть ни командная строка ни реестр не подходят. |
|
Вернуться к началу |
|
 |
Andy-C Гость
|
Добавлено: Ср Июл 31 2002 08:58 Заголовок сообщения: Re: Передача сообщений между приложениями |
|
|
см. NamedPipe. |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Ср Июл 31 2002 09:08 Заголовок сообщения: Memory Mapped Files (к дисковым файлам отношения не имеет, хотя может и иметь) |
|
|
Центральное приложение создаёт проекцию файла в памяти - CreateFileMapping и MapViewOfFile, другие приложения его открывают - OpenFileMapping и тоже MapViewOfFile. |
|
Вернуться к началу |
|
 |
Andy-C Гость
|
Добавлено: Чт Авг 01 2002 09:56 Заголовок сообщения: Re: Memory Mapped Files (к дисковым файлам отношения не имеет, хотя может и иметь) |
|
|
А можно к ним (MMF) получить доступ с другой машины? |
|
Вернуться к началу |
|
 |
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Пт Авг 02 2002 09:09 Заголовок сообщения: Вот это уж вряд ли |
|
|
>>А можно к ним (MMF) получить доступ с другой машины?
Тогда лучше через сокеты передавать, тут уж без разницы на какой машне адресат. - #include - Подключить библиотеки wsock32.lib и ws2_32.lib - Юзать функции WSAStartup, socket, gethostbyname (если надо), connect на клиентской машине и bind+listen+accept на сервере, send и recv для обмена данными, closesocket и WSACleanup для ажура, ещё может потребоваться ioctlsocket для перевода сокета в неблокирующий режим и обратно. Это если по TCP передавать, а можно проще, по UDP, тогда лучше на всех машинах сделать bind и сразу приступать к обмену данными по sendto иrecvfrom. |
|
Вернуться к началу |
|
 |
Andy-C Гость
|
Добавлено: Пт Авг 02 2002 09:21 Заголовок сообщения: Re: Вот это уж вряд ли |
|
|
Тогда удобней использовать (а может зря городим велик трубы. \Имя машины\pipe\имя трубы.
Но сервер, тот кто создайт трубу, может создать её только на этой машине, хотя, это и вполне логично.
Зато работать с ними, как с файлами  Есть, даже, I/O ориентированный на мессаги |
|
Вернуться к началу |
|
 |
|