Чтение онлайн

на главную - закладки

Жанры

UNIX: разработка сетевых приложений
Шрифт:
MCAST_LEAVE_SOURCE_GROUP • Выход из группы многоадресной передачи от источника group_source_req{}

Таблица 7.2. Параметры сокетов транспортного уровня

Level optname get set Описание Флаг Тип данных
IPPROTO_TCP TCP_MAXSEG Максимальный размер сегмента TCP int
TCP_NODELAY Отключает
алгоритм Нагла
int
IPPROTO_SCTP SCTP_ADAPTION_LAYER Указание на уровень адаптации sctp_setadaption
SCTP_ASSOCINFO + Получение и задание сведений об ассоциации sctp_assocparamms{}
SCTP_AUTOCLOSE Автоматическое закрытие int
SCTP_DEFAULT_SEND_PARAM Параметры отправки но умолчанию sctp_sndrcvinfo{}
SCTP_DISABLE_FRAGMENTS Фрагментация SCTP int
SCTP_EVENTS Уведомление об интересующих событиях sctp_event_subscribe{}
SCTP_GET_PEER_ADDR_INFO + Получение состояния адреса собеседника sctp_paddrinfo{}
SCTP_I_WANT_MAPPED_V4_ADDR Отображение адресов IPv4 int
SCTP_INITMSG Параметры пакета INIT по умолчанию sctp_initmsg{}
SCTP_MAXBURST Максимальный размер набора пакетов int
SCTP_MAXSEG Максимальный размер фрагментации int
SCTP_NODELAY Отключение алгоритма Нагла int
SCTP_PEER_ADDR_PARAMS + Параметры адреса собеседника sctp_paddrparams{)
SCTP_PRIMARY_ADDR + Основной адрес назначения sctp_setprim{}
SCTP_RTOINFO + Информация RTO sctp_rtoinfo{}
SCTP_SET_PEER_PRIMARY_ADDR Основной
адрес назначения собеседника
sctp_setpeerprim{}
SCTP_STATUS + Получение сведений о статусе ассоциации sctp_status{}

Существует два основных типа параметров: двоичные параметры, включающие или отключающие определенное свойство (флаги), и параметры, получающие и возвращающие значения параметров, которые мы можем либо задавать, либо проверять. В колонке «Флаг» указывается, относится ли параметр к флагам. Для флагов при вызове функции

getsockopt
аргумент
*optval
является целым числом. Возвращаемое значение
*optval
нулевое, если параметр отключен, и ненулевое, если параметр включен. Аналогично, функция
setsockopt
требует ненулевого значения
*optval
для включения параметра, и нулевого значения — для его выключения. Если в колонке «Флаг» не содержится символа «•», то параметр используется для передачи значения заданного типа между пользовательским процессом и системой.

В последующих разделах этой главы приводятся дополнительные подробности о параметрах сокетов.

7.3. Проверка наличия параметра и получение значения по умолчанию

Напишем программу, которая проверяет, поддерживается ли большинство параметров, представленных в табл. 7.1 и 7.2, и если да, то выводит их значения, заданные по умолчанию. В листинге 7.1 [1] содержатся объявления нашей программы.

Листинг 7.1. Объявления для нашей программы, проверяющей параметры сокетов

1

Все исходные коды программ, опубликованные в этой книге, вы можете найти по адресу http://www.piter.com.

//sockopt/checkopts.с

1 #include "unp.h"

2 #include <netinet/tcp.h> /* определения констант TCP_xxx */

3 union val {

4 int i_val;

5 long l_val;

6 struct linger linger_val;

7 struct timeval timeval_val;

8 } val;

9 static char *sock_str_flag(union val*, int);

10 static char *sock_str_int(union val*, int);

11 static char *sock_str_linger(union val*, int);

12 static char *sock_str_timeval(union val*, int);

13 struct sock_opts {

14 const char *opt_str;

15 int opt_level;

16 int opt_name;

17 char *(*opt_val_str)(union val*, int);

18 } sock_opts[] = {

19 { "SO_BROADCAST", SOL_SOCKET, SO_BROADCAST, sock_str_flag },

20 { "SO_DEBUG", SOL_SOCKET, SO_DEBUG, sock_str_flag },

21 { "SO_DONTROUTE", SOL_SOCKET, SO_DONTROUTE, sock_str_flag },

Поделиться:
Популярные книги

Измена. Ребёнок от бывшего мужа

Стар Дана
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Ребёнок от бывшего мужа

Отборная бабушка

Мягкова Нинель
Фантастика:
фэнтези
юмористическая фантастика
7.74
рейтинг книги
Отборная бабушка

Мимик нового Мира 3

Северный Лис
2. Мимик!
Фантастика:
юмористическая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Мимик нового Мира 3

Адский пекарь

Дрейк Сириус
1. Дорогой пекарь!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Адский пекарь

Я еще не князь. Книга XIV

Дрейк Сириус
14. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я еще не князь. Книга XIV

Путь Шедара

Кораблев Родион
4. Другая сторона
Фантастика:
боевая фантастика
6.83
рейтинг книги
Путь Шедара

С Д. Том 16

Клеванский Кирилл Сергеевич
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
С Д. Том 16

Бывший муж

Рузанова Ольга
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бывший муж

Драконий подарок

Суббота Светлана
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Драконий подарок

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Наследница Драконов

Суббота Светлана
2. Наследница Драконов
Любовные романы:
современные любовные романы
любовно-фантастические романы
6.81
рейтинг книги
Наследница Драконов

Ретроградный меркурий

Рам Янка
4. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Ретроградный меркурий