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

       

Прием сообщений


Для приема сообщений предназначена функция GetBroadcastMessage():

int GetBroadcastMessage(char *MessageBuffer);

Параметр определяет адрес буфера, в который будет записано принятое сообщение. Размер буфера должен составлять не менее 56 байт.

Функция возвращает 0 при успешном завершении или код ошибки:



Код ошибки Значение
0xFC Переполнение очереди сообщений
0xFE Ошибка ввода/вывода или нехватка памяти на сервере

Если в буфере нет сообщений, в первый байт буфера будет записано нулевое значение.

Вместо функции GetBroadcastMessage() можно использовать функцию E1h прерывания INT21h:

На входе: AH = E1h;
DS:SI = Адрес буфера запроса;
ES:DI = Адрес буфера ответа.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.

Буфер запроса:

struct REQUEST { WORD PacketLength; // размер пакета запроса BYTE Function; // должно быть равно 1 };

Буфер ответа:

struct REPLAY { WORD PacketLength; // размер пакета BYTE MessageLength; // длина сообщения BYTE Message[MessageLength]; // сообщение };



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