#include #include #include #include #define MAX_BUF_SIZE 1024 #define SIZE_BUFFER 140 int main() { system("chcp 1251"); LPSTR lipzPipe = L"\\\\.\\pipe\\MyPipe"; DWORD vis_size = SIZE_BUFFER; DWORD actual_WRITER; DWORD actual_reader; LPWSTR buffer = (CHAR*)calloc(vis_size, sizeof(CHAR));// сюда считаем файлы(данные) char messege[SIZE_BUFFER]; BOOL flag_otvet = TRUE; BOOL SecceRead; HANDLE hNamePipe;//Дескриптор файла //while (TRUE) //{ // hNamePipe = CreateFile(lipzPipe, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);//открываем канал, по аналогии с кналом // /*WaitNamedPipe(lipzPipe, INFINITE);*/ // DWORD dwMode = PIPE_READMODE_MESSAGE; // BOOL IsSSSS = SetNamedPipeHandleState(hNamePipe, &dwMode, NULL, NULL); // if (!IsSSSS) // { // printf("\nСервер не отвечает \n"); // flag_otvet = TRUE; // } // else // { // if (flag_otvet) // { // printf("введите сообщение для сервера: \n"); // gets(messege); // buffer = &messege; // WriteFile(hNamePipe, buffer, vis_size, &actual_WRITER, NULL); // flag_otvet = FALSE; // } // SecceRead = ReadFile(hNamePipe, buffer, SIZE_BUFFER, &actual_reader, NULL); // if (SecceRead) // { // printf("\nСервер пишет и пишет..\n"); // printf(buffer); // printf("\n"); // flag_otvet = TRUE; // if (buffer == NULL) // { // printf("Пусто"); // } // } // } // Sleep(30000); // CloseHandle(hNamePipe); //} char read_buf[MAX_BUF_SIZE]; char write_buf[MAX_BUF_SIZE]; // Открытие именованного канала для записи hNamePipe = CreateFile(lipzPipe, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); while (1) { // Ввод числа int number; printf("Введите число: "); scanf_s("%d", &number); // Преобразование числа в строку snprintf(write_buf, sizeof(write_buf), "%d", number); // Запись числа в канал write(hNamePipe, write_buf, strlen(write_buf) + 1); // Открытие именованного канала для чтения SecceRead = ReadFile(hNamePipe, buffer, MAX_BUF_SIZE, &actual_reader, NULL); // Чтение результата от сервера read(hNamePipe, read_buf, sizeof(read_buf)); // Вывод результата printf("Результат: %s\n", read_buf); // Закрытие именованного канала для чтения CloseHandle(hNamePipe); // Открытие именованного канала для записи hNamePipe = CreateFile(lipzPipe, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL); } // Закрытие именованного канала для записи CloseHandle(hNamePipe); return 1; }