powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / взаимодействие двух программ
10 сообщений из 10, страница 1 из 1
взаимодействие двух программ
    #33700993
DubAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две программы: P1 и P2. P1 выполняет какие-то действия и результат записывает в файл F1. P2 через некоторые интервалы времени читает из файла F1 записанное ранее значение и выводит его на экран.
Можно ли обойтись без файла, т.е. в идеале программа P1 передает результат программе P2 и та сразу выводит этот результат на экран?
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701000
Nahel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовать БД
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701192
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
named pipes
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701198
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDE, OLE и т.д.
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701253
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может LDAP?
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701338
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если окружение - Win32 , то можно использовать named pipes, mailslots, если окружение любое, можно использовать TCP sockets например.
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33701835
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DubAlexЕсть две программы: P1 и P2. P1 выполняет какие-то действия и результат записывает в файл F1. P2 через некоторые интервалы времени читает из файла F1 записанное ранее значение и выводит его на экран.
Можно ли обойтись без файла, т.е. в идеале программа P1 передает результат программе P2 и та сразу выводит этот результат на экран?

Если речь идёт про Win32, то рекомендую прочитать Рихтера
"Windows для проффесионалов."


с уважением
(круглый)
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33702506
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 k> Если речь идёт про Win32, то рекомендую прочитать Рихтера
k> "Windows для проффесионалов."... ссылку на которую кстати, не так давно в дельфийном форуме озвучили
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33713119
DubAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть 2 программы между которыми нужно организовать взаимодействие. Я использую Pipes. Появилась трудность.
Есть следующий код для клиента:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
LPTSTR lpszPipename = "\\\\.\\pipe\\kolTelN"; 
HANDLE hPipe; 
WaitNamedPipe(lpszPipename, NMPWAIT_WAIT_FOREVER); 
hPipe = CreateFile(lpszPipename,                GENERIC_READ | GENERIC_WRITE,      FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING,  0 , NULL ); 
if (hPipe == INVALID_HANDLE_VALUE) 
   MessageBox( 0 , "Invalid handle value1", NULL, MB_OK); 
DWORD bytesWrt; 
unsigned char kolTelN=i+ 1 ; 
int res = WriteFile( hPipe, &kolTelN,  1 , &bytesWrt, NULL ); 
if(!res) 
   MessageBox( 0 , "Can't write to file", NULL, MB_OK); 
CloseHandle(hPipe); 
Насколько я понял, строка:
Код: plaintext
1.
WaitNamedPipe(lpszPipename, NMPWAIT_WAIT_FOREVER); 
заставляет клиента ждать пока сервер не создаст Pipe с таким именем. Но клиент не ждет а выполняет следующие операции и из-за этого возникают глюки (и переменная hPipe =INVALID_HANDLE_VALUE и res = 0 и т.д.). Как это исправить? Или я плохо разобрался с принципом работы Pipes?
...
Рейтинг: 0 / 0
взаимодействие двух программ
    #33713429
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в msdn написано так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
   while ( 1 ) 
   { 
      hPipe = CreateFile( 
         lpszPipename,   // pipe name 
         GENERIC_READ |  // read and write access 
         GENERIC_WRITE, 
          0 ,              // no sharing 
         NULL,           // default security attributes
         OPEN_EXISTING,  // opens existing pipe 
          0 ,              // default attributes 
         NULL);          // no template file 
 
   // Break if the pipe handle is valid. 
 
      if (hPipe != INVALID_HANDLE_VALUE) 
         break; 
 
      // Exit if an error other than ERROR_PIPE_BUSY occurs. 
 
      if (GetLastError() != ERROR_PIPE_BUSY) 
      {
         printf("Could not open pipe"); 
         return  0 ;
      }
 
      // All pipe instances are busy, so wait for 20 seconds. 
 
      if (!WaitNamedPipe(lpszPipename,  20000 )) 
      { 
         printf("Could not open pipe"); 
         return  0 ;
      } 
   }
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / взаимодействие двух программ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]