Литмир - Электронная Библиотека
Содержание  
A
A

Таблица 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. Объявления для нашей программы, проверяющей параметры сокетов

//sockopt/checkopts.с

 1 #include "unp.h"

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

 3 union val {

 4  int i_val;

 5  long l_val;

вернуться

1

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

76
{"b":"225366","o":1}