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


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


Для приема сообщений предназначена функция 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]; // сообщение };









Начало  Назад  Вперед