Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3Kypc_Koмn.Cucт_ЛР.doc
Скачиваний:
15
Добавлен:
07.02.2016
Размер:
233.98 Кб
Скачать

Введение

Сетевая базовая система ввода-вывода (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)

Задание

Написать программу, добавляющую заданное пользователем имя в таблицу местных имен.

Контрольные вопросы.

  1. Где хранятся имена узлов?

  2. В каком формате представлены имена узлов?

  3. Какие ограничения наложены на имена узлов?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]