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

Параметры сокета

Параметры сокета

Существует много параметров, которые можно применять для управления поведением соединений на базе сокетов — слишком много для подробного описания в этой главе. Для манипулирования параметрами используют функцию setsockopt:

#include <sys/socket.h>
int setsockopt(int socket, int level, int option_name,
 const void *option value, size_t option len);

Задавать параметры можно на разных уровнях иерархии протоколов. Для установки параметров на уровне сокета вы должны задать level равным SOL_SOCKET. Для задания параметров на более низком уровне протоколов (TCP, UDP и т.д.) приравняйте параметр level номеру протокола (полученному либо из заголовочного файла netinet/in.h, либо из функции getprotobyname).

В аргументе option_name указывается имя задаваемого параметра, аргумент option_value содержит произвольное значение длиной option_len байтов, передаваемое без изменений обработчику низкоуровневого протокола.

Параметры уровня сокета определены в заголовочном файле sys/socket.h и включают приведенные в табл. 15.4 значения.

Таблица 15.5

Параметр Описание
SO_DEBUG Включает отладочную информацию
SO_KEEPALIVE Сохраняет активными соединения при периодических передачах
SO_LINGER Завершает передачу перед закрытием

Параметры SO_DEBUG и SO_KEEPALIVE принимают целое значение option_value для установки или включения (1) и сброса или выключения (0). Для параметра SO_LINGER нужна структура типа linger, определенная в файле sys/socket.h и задающая состояние параметра и величину интервала задержки.

Функция setsockopt возвращает 0 в случае успеха и -1 в противном случае. На страницах интерактивного справочного руководства описаны дополнительные параметры и ошибки.

Оглавление книги


Генерация: 0.779. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз