- •Міністерство освіти й науки україни
- •Кафедра інформаційних технологій
- •Методичні рекомендації
- •Затверджено
- •Введение
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Лабораторная работа № 3
- •Команды поддержки сеанса.
- •Лабораторная работа № 4
- •Лабораторная работа № 5
- •Команды netbios
- •Общие команды
Введение
Сетевая базовая система ввода-вывода (NETBIOS) представляет собой высокоуровневый интерфейс программирования для локальных вычислительных сетей (LAN) IBM.
Вследствие того, что NETBIOS был создан как открытый интерфейс в сети ПЭВМ IBM, он все-таки может стать стандартом, по крайней мере, как интерфейс сеансового уровня (это пятый уровень взаимодействия компонентов сети в модели соединения открытых систем).
Для написания прикладных программ, использующих услуги NETBIOS, необходимо устанавливать блок управления сетьюNCBи выдавать прерывание 5CHNETBIOS.см. Приложение А.
Структура блока NCB:
Имя поля |
Длина (байт) |
Значение |
NCB_COMMAND |
1 |
Поле команды Блока управления сетью (NCB) |
NCB_RETCODE |
1 |
Поле кода возврата NCB |
NCB_LSN |
1 |
Поле номера локального сеанса NCB |
NCB_NUM |
1 |
Поле номера Вашего имени NCB |
NCB_BUFFER@ |
4 |
Указатель NCB на адрес буфера сообщений (смещение:сегмент) |
NCB_LENGTH |
2 |
Длина буфера NCB (в байтах) |
NCB_CALLNAME |
16 |
Имя NCB на местном или удаленном адаптере |
NCB_NAME |
16 |
Имя NCB на местном адаптере |
NCB_RTO |
1 |
Величина тайм-аута получения сообщения |
NCB_STO |
1 |
Величина тайм-аута отправления сообщения |
NCB_POST@ |
4 |
Указатель NCB на подпрограмму регистрации (смещение:сегмент) |
1 |
2 |
3 |
NCB_LANA_NUM |
1 |
Номер адаптера NCB |
NCB_CMD_CPLT |
1 |
Поле состояния команды NCB |
NCB_RESERVE |
14 |
Зарезервированная область NCB |
Подробное описание полей блока NCB находится в приложении В.
Блок управления сетью (NCB) и базовые функции для использования услугNETBIOSописаны в файлеnetbios.h. В дальнейшем будут рассмотрены функции из этой библиотеки и основные принципы работы с ними.
Лабораторная работа № 1
Тема: Добавление имени в местную таблицу имен с использованием протоколаNetBios
Цель: Научиться добавлять имя в местную таблицу имен для построения распределенной вычислительной системы.
Теоретические сведения.
Команды поддержки имени.
Чтобы использовать NETBIOS, к таблице имен необходимо сначала добавить имя станции. Последнее представляет собой уникальное имя, под которым данная станция известна в сети. У станции может быть несколько имен. Длина имени не может быть больше 16 символов и не может содержать в себе символы '*' или 00h.
Имена позволяют прикладной программе и ПЭВМ, на которой она работает, быть узнанными другими прикладными программами и ПЭВМ в сети.
В библиотеке netbios.hописана функция добавления имениADD_NAME(далее все описанные функции взяты из библиотекиnetbios.h). Ее прототип:
intADD_NAME(char*name)
Функция добавляет имя, указанное в name, в таблицу местных имен и возвращает код ошибки. Если функция возвращает нулевое значение, это значит, что имя добавлено успешно. В противном случае можно использовать функциюError. Ее прототип:
voidError(interr_code)
Функция выводит на экран значение кода ошибки.
Пример добавления имени:
int err;
char *name=”name”;
err=ADD_NAME(name);
if(err!=0)
Error(err);
Если имя становится ненужным, его необходимо удалить. Это можно сделать с помощью функции DEL_NAME. Ее прототип:
intDEL_NAME(char*name)
Функция удаляет имя из таблицы местных имен. При ошибке будет возвращено ненулевое значение.
Если необходимо переустановить состояние местного адаптера и очистить таблицы имен и сеансов, используйте функцию RESET. Ее прототип:
intRESET(void)
Задание
Написать программу, добавляющую заданное пользователем имя в таблицу местных имен.
Контрольные вопросы.
Где хранятся имена узлов?
В каком формате представлены имена узлов?
Какие ограничения наложены на имена узлов?