Лекции по курсу "Системное программирование для UNIX". Литвинов Д.Г. - 62 стр.

UptoLike

Составители: 

62
Эта функция устанавливает опцию OPTNAME на уровне LEVEL для гнезда
SOCKET. Значение опции передается в буфере, на который указывает OPTVAL. Длина
буфера задается в OPTLEN.
Возвращаемое значение и коды ошибок идентичны предыдущей функции.
Константа SOL_SOCKET, определенная в <sys/socket.h> используется для
задания аргумента LEVEL.
Имя опции может принимать следующие значения:
SO_DEBUG эта опция включает запись отладочной информации. Значение
имеет тип int; ненулевое значение означаетда”;
SO_REUSEADDR опция показывает возможно ли повторное использование
локального адреса гнезда. Значение опции имеет тип int;
ненулевое значение означаетда”;
SO_KEEPALIVE эта опция указывает должен ли драйвер протокола периодически
посылать пакеты данных подключенному гнезду для контроля
сохранения соединения. Если драйвер не получает ответа на эти
пакеты, соединение признается нарушенным. Значение опции
имеет тип int; ненулевое значение означаетда”;
SO_DONTROUTE эта опция указывает должно ли сообщение проходить через
стандартные средства маршрутизации или посылаться
непосредственно к сетевому драйверу. Если значение
установлено, то выполнение идет по второму варианту. Значение
опции имеет тип int; ненулевое значение означаетда”;
SO_LINGER опция определяет что должно происходить в случае, если
остались неотправленные пакеты на момент закрытия гнезда.
Значение имеет следующий тип:
struct linger {
int l_onoff;
int l_linger;
}
Если поле l_onoff имеет ненулевое значение, все оставшиеся
данные передаются или драйвер ожидает время, заданное в поле
l_linger. Поле l_linger задает тайм-аут в секундах;
SO_BROADCAST опция задает может ли дейтаграммы посылаться одновременно
всем слушающим гнездам. Значение опции имеет тип int;
ненулевое значение означаетда”;
SO_OOBINLINE если опция установлена, чрезвычайные данные посылаются
непосредственно в поток обычных данных. Значение опции
имеет тип int; ненулевое значение означаетда”;
SO_SNDBUF опция позволяет установить или прочитать значение выходного
буфера. Опция имеет тип size_t;
SO_RCVBUF опция позволяет установить или прочитать значение входного
буфера. Опция имеет тип size_t;
SO_STYLE,
SO_TYPE
опция может использоваться только с getsockopt. Используется
для получения способа взаимодействия. Опция имеет тип int, ее
значение устанавливает способ взаимодействия;
SO_ERROR опция может использоваться только с getsockopt. Используется
для сброса статуса ошибки гнезда.
        Эта функция устанавливает опцию OPTNAME на уровне LEVEL для гнезда
SOCKET. Значение опции передается в буфере, на который указывает OPTVAL. Длина
буфера задается в OPTLEN.
        Возвращаемое значение и коды ошибок идентичны предыдущей функции.
        Константа SOL_SOCKET, определенная в  используется для
задания аргумента LEVEL.
        Имя опции может принимать следующие значения:
SO_DEBUG             эта опция включает запись отладочной информации. Значение
                     имеет тип int; ненулевое значение означает “да”;
SO_REUSEADDR         опция показывает возможно ли повторное использование
                     локального адреса гнезда. Значение опции имеет тип int;
                     ненулевое значение означает “да”;
SO_KEEPALIVE         эта опция указывает должен ли драйвер протокола периодически
                     посылать пакеты данных подключенному гнезду для контроля
                     сохранения соединения. Если драйвер не получает ответа на эти
                     пакеты, соединение признается нарушенным. Значение опции
                     имеет тип int; ненулевое значение означает “да”;
SO_DONTROUTE         эта опция указывает должно ли сообщение проходить через
                     стандартные      средства   маршрутизации или посылаться
                     непосредственно к сетевому драйверу. Если значение
                     установлено, то выполнение идет по второму варианту. Значение
                     опции имеет тип int; ненулевое значение означает “да”;
SO_LINGER            опция определяет что должно происходить в случае, если
                     остались неотправленные пакеты на момент закрытия гнезда.
                     Значение имеет следующий тип:
                            struct linger {
                                 int l_onoff;
                                 int l_linger;
                            }
                    Если поле l_onoff имеет ненулевое значение, все оставшиеся
                    данные передаются или драйвер ожидает время, заданное в поле
                    l_linger. Поле l_linger задает тайм-аут в секундах;
SO_BROADCAST        опция задает может ли дейтаграммы посылаться одновременно
                    всем слушающим гнездам. Значение опции имеет тип int;
                    ненулевое значение означает “да”;
SO_OOBINLINE        если опция установлена, чрезвычайные данные посылаются
                    непосредственно в поток обычных данных. Значение опции
                    имеет тип int; ненулевое значение означает “да”;
SO_SNDBUF           опция позволяет установить или прочитать значение выходного
                    буфера. Опция имеет тип size_t;
SO_RCVBUF           опция позволяет установить или прочитать значение входного
                    буфера. Опция имеет тип size_t;
SO_STYLE,           опция может использоваться только с getsockopt. Используется
SO_TYPE             для получения способа взаимодействия. Опция имеет тип int, ее
                    значение устанавливает способ взаимодействия;
SO_ERROR            опция может использоваться только с getsockopt. Используется
                    для сброса статуса ошибки гнезда.




       62