в поле CallName, это означает,
// Устанавливаем "*" в поле CallName, это означает, // что сервер будет обрабатывать запросы на создание // канала от любого имени
AddNameNCB.SetCallName("*");
// Устанавливаем время тайм-аута для команд // приема и передачи данных по каналу
AddNameNCB.SetRtoSto(20,20);
// Создаем канал с принимающей стороны
AddNameNCB.WListen(); }
// Деструктор, удаляет канал и имя.
~NETBIOS_SESSION_SERVER() {
// Удаление канала
AddNameNCB.WHangUp();
// Удаление имени
AddNameNCB.WDeleteName(OurName); errno = AddNameNCB.Error(); }
// Функция для проверки кода ошибки
int Error(void) {return errno;}
// Функция для приема данных по каналу
void Receive(char *ReceiveBuffer, unsigned BufferSize) {
// Записываем в NCB адрес и длину буфера
AddNameNCB.SetBuffer(ReceiveBuffer, BufferSize);
// Выполняем прием датаграммы с ожиданием
AddNameNCB.WReceive();
} };
void main(void) {
// Наш сервер с именем "NETBIOS Server"
NETBIOS_SESSION_SERVER Server("NETBIOS Server"); char ReceiveBuffer[512];
// Проверяем, были ли ошибки на этапе инициализации сервера.
if(Server.Error()) { printf("Ошибка %02.2X\n", Server.Error()); return; } printf("Инициализация завершена.\n"); printf("Ожидаем сообщение от клиента.\n");
// Принимаем сообщение от клиента по каналу, который был создан // конструктором класса NETBIOS_SESSION_SERVER
Server.Receive(ReceiveBuffer, 512); printf("Принято: >%s<\n",ReceiveBuffer); }
В файле nbclient.cpp находится программа-клиент (листинг 23), работающая в паре с только что приведенной программой-сервером.
Программа-клиент создает объект NETBIOS_SESSION_CLIENT, конструктор которого выполняет действия, аналогичные конструктору класса NETBIOS_SESSION_SERVER. Есть одно отличие: для создания канала в конструкторе класса NETBIOS_SESSION_CLIENT используется функция WCall(), а не WListen(). Конструктор создает канал с программой-сервером, указывая имя "NETBIOS Server", которое используется сервером для работы с клиентом.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий