Назначение транспортного адреса

Для назначения транспортного адреса транспортной точке и ее активизации используется функция t_bind, имеющая следующий вид

#include <tiuser.h>

int t_bind (fd, req, ret)

int fd;

struct t_bind *req;

struct t_bind *ret;

Аргумент fd задает дескриптор транспортной точки, созданной ранее с помощью функции t_open.

Аргумент req указывает на структуру t_bind, которая должна определять требуемый транспортный адрес для точки (поле req->addr) и максимальное количество запросов на соединение (поле req->qlen), одновременно обрабатываемых программой. Для программы-клиента поле req->qlen должно быть нулевым, а для программ-серверов, работающих в режиме с установлением логического соединения, оно, как правило, содержит 1 (необходимо учитывать, что не все поставщики транспортных услуг могут обеспечивать одновременную обработку сразу нескольких соединений к одной транспортной точке). Для программ-серверов, функционирующих в режиме без установления логического соединения, поле req->qlen смысла не имеет.

Если аргумент req имеет значение NULL, то функция t_bind сама назначит произвольный транспортный адрес для точки.

Аргумент ret должен указывать на область памяти под структуру t_bind, в которой после успешного выполнения функции будет размещена информация о транспортном адресе, назначенном транспортной точке. Если этот аргумент равен NULL, то информация о назначенном транспортном адресе возвращена не будет.

При успешном завершении функция t_bind возвращает ноль, иначе - число "-1" и устанавливает код ошибки в глобальной переменной t_errno.

Снятие транспортного адреса

Для снятия транспортного адреса у транспортной точки используется функция t_unbind, имеющая следующий вид

#include <tiuser.h>

int t_unbind (fd)

int fd;

Аргумент fd задает дескриптор транспортной точки, которой ранее с помощью функции t_bind был назначен транспортный адрес.

После выполнения функции t_unbind для транспортной точки обмен данными через нее становится невозможным.

При успешном завершении функция t_unbind возвращает ноль, иначе - число "-1" и устанавливает код ошибки в глобальной переменной t_errno.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: