Программирование для Windows NT (том 2)



         

Приложение MSLOTС - часть 2


    printf("cmd>");

   

    // Вводим текстовую строку

    gets(szBuf);

    // Передаем введенную строку серверному процессу

    // в качестве команды

    if(!WriteFile(hMailslot, szBuf, strlen(szBuf) + 1,

      &cbWritten, NULL))

      break;

   

    // В ответ на команду "exit" завершаем цикл

    // обмена данными с серверным процессом

    if(!strcmp(szBuf, "exit"))

      break;

  }

  // Закрываем идентификатор канала

  CloseHandle(hMailslot);

  return 0;

}

Сразу после запуска приложение проверяет параметры. Если вы указали имя компьютера или домена,оно будет вставлено в строку, передаваемую функции CreateFile, открывающей канал Mailslot.

Канал открывается следующим образом:

hMailslot = CreateFile( szMailslotName, GENERIC_WRITE,

  FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);

В результате будет открыт канал, предназначенный для записи в синхронном режиме.

Ввод и передача текстовых строк через канал выполняется в цикле, не имеющем никаких особенностей. Для записи введенной строки в канал мы вызываем функцию WriteFile:

WriteFile(hMailslot, szBuf, strlen(szBuf) + 1,

    &cbWritten, NULL);

Перед завершением своей работы приложение MSLOTC закрывает канал, вызывая для этого функцию CloseHandle.




Содержание  Назад  Вперед