Протокол NETBIOS. Шоберг А.Г. - 12 стр.

UptoLike

Составители: 

10
граммы превышает значение, указанное в поле NCB_LENGTH, принятый блок
данных будет усечен.
Датаграмму переданную в широковещательном режиме примут только
станции выдавшие команду широковещательного приема (в том числе и пере-
дающая станция). Если такую команду приема выдать несколько раз, то все бу-
феры будут заполнены одинаковыми данными.
11.3. Работа с каналами
Посредством команд
виртуальные каналы могут создаваться, удаляться, а
также может быть определено их состояние.
При работе с каналами имена используются только для создания каналов.
Далее, когда каналы уже будут созданы, для передачи данных используются
номера каналов, а не имена или номера имен. Канал создается одновременно
двумя станциями, одна из которых при этом находится
в режиме приема запро-
са на создание канала, а другая передает такой запрос. Канал создается с любы-
ми двумя именами, т.е. можно указывать и свое имя в качестве приемника.
Команда передачи запроса (Call) устанавливает канал между двумя име-
нами. В поле NCB_NAME указывается имя станции, которая устанавливает ка-
нал, в поле NCB_CALLNAME -
имя станции, с которой устанавливается канал.
Эти имена могут относиться к программам, работающим на одной или на раз-
ных станциях. Для успешного создания канала принимающая сторона должна
выдать команду приема запроса (Listen).
При создании канала указывается время тайм-аута для операций приема и
передачи данных. Команда делает несколько попыток создать канал и
в случае
неудачи возвращает код ошибки.
При работе с групповым именем команду Call следует выдать несколько
раз, так как за один вызов создается только один канал.
После создания канала поле NCB_LSN в NCB обеих станций будет со-
держать присвоенный номер канала. Его следует сохранить.
Для команды Listen в поле NCB_CALLNAME указывается имя, с кото-
рым
устанавливается канал. Если в первый байт имени записать символ "*", ка-
нал будет установлен с любой вызывающей станцией. Программа может выдать
несколько команд Listen для создания одновременно нескольких каналов.
Команда Hung_Up предназначена для закрытия канала, номер которого
указан в поле NCB_LSN. Она должна быть выполнена с обеих сторон канала
после заверш njя работы. Если канал
занят, то выдается ошибка. Для команд
передачи с ожиданием отводится 20 секунд на завершение.
11.4. Передача/Прием по каналам
Данные могут передаваться (Send) несколькими способами: c ожиданием
(Wait) и без него, с проверкой доставки (Ask) и без нее. Кроме того, можно пе-
редать два блока данных (Chain). При приеме используется вариант команды
Receive.