Протокол IPX. Шоберг А.Г. - 6 стр.

UptoLike

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

4
2. Инициализация сервера и клиента, соответственно;
3. Прием и передача данных.
3. Проверка наличия драйвера
Первое, что должна сделать программа, желающая работать в сети с про-
токолом IPX, - проверить, установлен ли драйвер протокола. Затем необходимо
получить адрес вызова этого драйвера (точку входа). В дальнейшем программа
вызывает драйвер при помощи команды дальнего вызова процедуры
по адресу
точки входа драйвера IPX.
Для того чтобы проверить, загружен ли драйвер IPX, необходимо загру-
зить в регистр АХ значение 7A00h и вызвать прерывание INT 2Fh. Если после
возврата из прерывания в регистре AL будет значение FFh, драйвер IPX загру-
жен. Адрес точки входа для вызова API драйвера при этом будет находиться в
регистровой паре ES:DI. Если же содержимое
регистра AL после возврата из
прерывания INT 2Fh будет отлично от FFh, драйвер IPX / SPX не загружен. Эта
же процедура может быть представлена на языке Ассемблера следующим обра-
зом:
;Вызов прерывания
mov ax, 7a00h
int 2fh
;Если драйвера нет
cmp al, ffh
jne _ipx_init_exit
;Адрес точки входа
mov word ptr ipx_entry+2, es
mov word ptr ipx_entry, di
4. Инициализация сервера и клиента
Программа-сервер или программа-клиент идентифицировали себя в сети
при помощи сокета. Для хранения сокета используется двухбайтовое слово, так
что диапазон возможных значений простирается от 0 до FFFFh. Однако нельзя
использовать произвольные значения. Некоторые значения зарезервированы
для использования определенными программами. Сокеты от 4000h до 8000h
распределяются динамически. Диапазон сокетов, распределяемых
фирмой
Novell разработчикам программного обеспечения, расположен выше значения
8000h. При обмене данными сервер принимает пакеты на сокете, значение
которого известно программам-клиентам. Сами же программы-клиенты могут
использовать либо то же самое значение сокета, либо получать свой сокет
динамически. Динамически распределяемые сокеты выдаются программам на
время их работы по специальному запросу. Перед
началом работы программа
должна запросить сокет у протокола IPX, а перед завершением - освободить
его. Клиент может сообщить серверу свой сокет путем передачи его в пакете
данных.
После определения сокета необходимо узнать сетевой адрес станций-
получателей. Для того чтобы клиент мог послать запрос серверу, необходимо