Я использую Pipes. Появилась трудность. Есть следующий код для клиента:
| Код | 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);
|
Насколько я понял, строка:
| Код | WaitNamedPipe(lpszPipename, NMPWAIT_WAIT_FOREVER);
|
заставляет клиента ждать пока сервер не создаст Pipe с таким именем. Но клиент не ждет а выполняет следующие операции и из-за этого возникают глюки (и переменная hPipe =INVALID_HANDLE_VALUE и res = 0 и т.д.). Как это исправить? Или я плохо разобрался с принципом работы Pipes? |