Локальные сети персональных компьютеров. Работа с сервером Novell NetWare



                  

  

Листинг 29



Листинг 29

Прием сообщений // Файл msgrcv\msgrcv.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#define WORD unsigned int #define BYTE unsigned char extern "C" int GetNetWareShellVersion(char *,char *, char *);
extern "C" int GetBroadcastMessage(char*);
extern "C" BYTE GetBroadcastMode(void);
extern "C" void SetBroadcastMode(BYTE);
void main(void) { char MajorVersion=0; char MinorVersion=0; char Revision=0; BYTE OldBroadcastMode; char MessageBuffer[56]; int ccode; printf("\n*MSGRCV* (C) Frolov A., 1993\n");
// Проверяем присутствие сетевой оболочки asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision);
asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n");
return; } // Сохраняем старый режим приема сообщений OldBroadcastMode = GetBroadcastMode();
// Устанавливаем режим, при котором сообщения от файл-сервера и поль- // зователей записываются в буфер, но автоматически не отображаются SetBroadcastMode(3);
// Ожидаем прихода сообщения for(;;) { // Извлекаем сообщение из буфера ccode = GetBroadcastMessage(MessageBuffer);
if(ccode) break; // Если сообщение есть в буфере, выводим его if(MessageBuffer[0] != '\0') { printf(">
>
>
%s\n", MessageBuffer);
} // Если оператор нажал на любую клавишу, // завершаем работу программы if(kbhit()) break; } // Восстанавливаем старый режим приема сообщений SetBroadcastMode(OldBroadcastMode);
}







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