setsockopt()

Установить параметры сокета

Прототип:

#include <sys/types.h>
#include <sys/socket.h>
int setsockopt( int s,
int level,
int optname,
const void *optval,
socklen_t optlen );

Аргументы:

s
Файловый дескриптор сокета, возвращаемый функцией socket(), к которому должен быть применен параметр.
level
Уровень протокола, к которому должна применяться опция. В большинстве случаев это параметр на уровне сокета и обозначается SOL_SOCKET.
optname
Параметр для дескриптора файла сокета.
optval
Указатель на значение параметра (в большинстве случаев независимо от того, должен ли параметр быть включен или выключен). Если значение параметра не должно возвращаться, optval может иметь значение NULL. Большинство параметров уровня сокета используют параметр int для optval. Другие, такие как параметры SO_LINGER, SO_SNDTIMEO и SO_RCVTIMEO, используют структуры, которые также позволяют получать данные, связанные с параметром.
optlen
Указатель на длину значения параметра. Этот аргумент является параметром "значение-результат"; необходимо инициализировать его, чтобы указать размер буфера, на который указывает optval.

Библиотека:

libsocket

Описание:

Функция setsockopt() устанавливает параметры сокета.

См. getsockopt() для получения более подробной информации.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Некорректный файловый дескриптор s.
EDOM
Значение вне допустимого диапазона.
EFAULT
Адрес, на который указывает optval находится вне допустимого адресного прострнаства процесса.
EINVAL
optval не был указан.
ENOPROTOOPT
Параметр недоступен на указанном уровне.

Классификация:

POSIX 1003.1

Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

ICMP, IP, TCP, и UDP протоколы

getsockopt(), socket()




Предыдущий раздел: Описание API сетевой библиотеки