Локальные сети персональных компьютеров Использование протоколов IPX, SPX, NETBIOS



         

Система "клиент-сервер" на базе каналов - часть 4


int Error(void) {return errno;}

// Функция для передачи по каналу

void Send(char *ReceiveBuffer, unsigned BufferSize) {

// Устанавливаем адрес и длину буфера

AddNameNCB.SetBuffer(ReceiveBuffer, BufferSize);

// Передаем данные по каналу с ожиданием

AddNameNCB.WSend(); } };

void main(void) {

// Наш клиент с именем "NETBIOS Client"

NETBIOS_SESSION_CLIENT Client("NETBIOS Client");

// Проверяем, были ли ошибки на этапе инициализации клиента.

if(Client.Error()) { printf("Ошибка %02.2X\n", Client.Error()); return; } printf("Инициализация завершена.\n");

// Передаем сообщение серверу по созданному каналу. Канал был // создан при работе конструктора класса NETBIOS_SESSION_CLIENT.

Client.Send("Привет от клиента NETBIOS!", 512); }

Файл netbios.hpp (листинг 24) содержит все необходимые определения для программ, работающих с каналами NETBIOS:

// =================================================== // Листинг 24. Классы для работы с 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

// Команды для передачи датаграмм

#define NB_WSendDatagram 0x20 #define NB_SendDatagram 0xa0 #define NB_WSendBroadcastDatagram 0x22 #define NB_SendBroadcastDatagram 0xa2

// Команды для приема датаграмм

#define NB_WReceiveDatagram 0x21 #define NB_ReceiveDatagram 0xa1 #define NB_WReceiveBroadcastDatagram 0x23 #define NB_ReceiveBroadcastDatagram 0xa3

// Команды для работы с каналами

#define NB_WCall 0x10 #define NB_Call 0x90 #define NB_WListen 0x11 #define NB_Listen 0x91 #define NB_WHangUp 0x12 #define NB_HangUp 0x92

// Команды для передачи данных по каналу

#define NB_WSend 0x14 #define NB_Send 0x94 #define NB_WSendNoAck 0x71 #define NB_SendNoAck 0xf1

#define NB_WChainSend 0x17 #define NB_ChainSend 0x97 #define NB_WChainSendNoAck 0x72 #define NB_ChainSendNoAck 0xf2




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