Использование протоколов IPX, SPX, NETBIOS

       

IPXOpenSocket


На входе:BX= 00h.
AL= Тип сокета:

00h - короткоживущий;

FFh - долгоживущий.

DX= Запрашиваемый номер сокета или 0000h, если требуется получить динамический номер сокета.

Примечание. Байты номера сокета находятся в перевернутом виде.

На выходе:AL= Код завершения:

00h - сокет открыт;

FFh - этот сокет уже был открыт раньше;

FEh - переполнилась таблица сокетов.

DX= Присвоенный номер сокета.

Перед началом передачи пакетов программа должна получить свой идентификатор - сокет. Функция IPXOpenSocket как раз и предназначена для получения сокета.

Сокеты являются ограниченным ресурсом, поэтому программы должны заботиться об освобождении сокетов. Когда вы открываете (запрашиваете у IPX) сокет, вы должны указать тип сокета - короткоживущий или долгоживущий.

Короткоживущие сокеты освобождаются (закрываются) автоматически после завершения программы. Долгоживущие сокеты можно закрыть только с помощью специально предназначенной для этого функции IPXCloseSocket. Такие сокеты больше всего подходят для использования резидентными программами или драйверами. Более того, для резидентных программ, работающих с IPX, вы просто обязаны использовать долгоживущие сокеты, так как в противном случае при завершении программы (и при оставлении ее резидентной в памяти) все открытые программой сокеты будут автоматически закрыты. В этом случае после активизации резидентная программа останется без сокетов.

Если вы не используете динамическое распределение сокетов и задаете свой номер сокета, используйте значения в диапазоне от 4000h до 8000h или получите персональный зарегистрированный сокет у фирмы Novell.

По умолчанию при загрузке оболочки рабочей станции вам доступно максимально 20 сокетов. При соответствующей настройке сетевой оболочки вы можете увеличить это значение до 150.



Содержание раздела