Читаем UNIX: разработка сетевых приложений полностью

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

LeveloptnamegetsetОписаниеФлагТип данных
IPPROTO_TCPTCP_MAXSEGМаксимальный размер сегмента TCPint
TCP_NODELAYОтключает алгоритм Наглаint
IPPROTO_SCTPSCTP_ADAPTION_LAYERУказание на уровень адаптацииsctp_setadaption
SCTP_ASSOCINFO+Получение и задание сведений об ассоциацииsctp_assocparamms{}
SCTP_AUTOCLOSEАвтоматическое закрытиеint
SCTP_DEFAULT_SEND_PARAMПараметры отправки но умолчаниюsctp_sndrcvinfo{}
SCTP_DISABLE_FRAGMENTSФрагментация SCTPint
SCTP_EVENTSУведомление об интересующих событияхsctp_event_subscribe{}
SCTP_GET_PEER_ADDR_INFO+Получение состояния адреса собеседникаsctp_paddrinfo{}
SCTP_I_WANT_MAPPED_V4_ADDRОтображение адресов IPv4int
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+Информация RTOsctp_rtoinfo{}
SCTP_SET_PEER_PRIMARY_ADDRОсновной адрес назначения собеседникаsctp_setpeerprim{}
SCTP_STATUS+Получение сведений о статусе ассоциацииsctp_status{}

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

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

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

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

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

//sockopt/checkopts.с

 1 #include "unp.h"

 2 #include /* определения констант 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 },

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT