_tprintf(_T("Получена команда завершения работы. Соединение разрывается."));
CloseHandle(hNamedPipe);
return 0;
}
Программа 11.3 — это серверная программа, включающая функцию потока сервера, которая обрабатывает запросы, генерируемые с помощью программы 11.2. Кроме того, сервер создает "широковещательный серверный поток" ("server broadcast thread") (см. программу 11.4), который используется для широковещательной рассылки имени своего канала всем клиентам, желающим подключиться, посредством почтового ящика. В программе 11.2 вызывается функция LocateServer, представленная в программе 11.5, которая считывает информацию, отправленную данным процессом. Почтовые ящики описываются далее в настоящей главе.
Хотя соответствующий код и не включен в программу 11.4, в ней предусмотрена возможность защиты сервером (представлен на Web-сайте) своего именованного канала с целью предотвращения доступа к нему клиентов, не имеющих должных полномочий. Вопросы безопасности объектов рассматриваются в главе 15, где будет также
показано, как использовать указанную возможность.
Программа 11.3. serverNP: многопоточный сервер именованного канала
/* Глава 11. ServerNP. */
/* Многопоточный сервер командной строки. Версия на основе именованных каналов. */
#include "EvryThng.h"
#include "ClntSrvr.h" /* Определения сообщений запроса и ответа. */