Устанавливаем имя партнера, которому будет
// Записываем в NCB адрес и длину буфера
ReceiveNCB.SetBuffer(ReceiveBuffer, BufferSize);
// Выполняем прием датаграммы с ожиданием
ReceiveNCB.WReceiveDatagram(NetworkNameNumber);
}
// Функция для передачи датаграммы
void Send(char *ReceiveBuffer, unsigned BufferSize, char *CallName) { NCB SendNCB;
// Устанавливаем адрес и длину буфера
SendNCB.SetBuffer(ReceiveBuffer, BufferSize);
// Устанавливаем имя партнера, которому будет передана // наша датаграмма
SendNCB.SetCallName(CallName);
// Передаем датаграмму с ожиданием
SendNCB.WSendDatagram(NetworkNameNumber); } };
void main(void) {
// Наш клиент с именем "NETBIOS Client"
NETBIOS_DATAGRAM_CLIENT Client("NETBIOS Client");
// Проверяем, были ли ошибки на этапе инициализации клиента.
if(Client.Error()) { printf("Ошибка %02.2X\n", Client.Error()); return; } printf("Инициализация завершена.\n");
// Передаем сообщение серверу с именем "NETBIOS Server"
Client.Send("Привет от клиента NETBIOS!", 512, "NETBIOS Server");
}
В include-файле netbios.hpp (листинг 20) приведены определения констант и классов для работы с протоколом NETBIOS через прерывание INT5Ch.
В классе NCB, кроме структуры данных _NCB, определены конструктор NCB() и несколько других функций для работы с этим классом.
Конструктор расписывает структуру ncb нулями и сбрасывает код ошибки в переменной errno.
Функция NetBios() вызывает прерывание NETBIOS.
Функции WAddName() и WDeleteName() определены в файле nbfunc.cpp (листинг 21). Они предназначены для добавления и удаления имени.
Назначение остальных функций вы можете узнать, прочитав комментарии к программе в листинге 20.
// =================================================== // Листинг 20. Классы для работы с NETBIOS // // Файл netbios.hpp // // (C) A. Frolov, 1993 // ===================================================
// Команды NETBIOS
// Команды для работы с именами
#define NB_WAddName 0x30 #define NB_AddName 0xb0 #define NB_WAddGroupName 0x36 #define NB_AddGroupName 0xb6 #define NB_WDeleteName 0x31 #define NB_DeleteName 0xb1
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий