Телекоммуникационные технологии. Том 1



         

Winsock (для UNIX, Windows- и -NT) - часть 11


Аргумент cmd представляет собой код команды, которая будет выполнена для соединителя s, argp - указатель на параметр команды. Возможно применение команд: FIONBIO - разрешает/запрещает режим блокировки соединителя s (команда WSAAsyncSelect ставит соединитель в режим запрета блокировок автоматически). FIONREAD - определяет объем данных, которые могут быть автоматически считаны через соединитель s. SIOCATMARK - задает режим чтения приоритетной информации (для соединителей типа SOCK_STREAM.

Программа setsockopt(s, int level, int optname, const char far*optval, int optlen) устанавливает текущие значения опций для соединителя s. Аргумент level описывает уровень, на котором определена данная опция (например, SOL_SOCKET или IPPROTO_TCP). optname - имя опции, значение которой устанавливается, optval - указатель на буфер, где лежит значение опции, optlen - размер этого буфера. Для опции SO_LINGER - это размер структуры, для остальных - длина целого. При корректном исполнении setsockopt возвращает нуль, в противном случае SOCKET_ERROR. Программа setsockopt поддерживает следующие опции (BSD поддерживает и некоторые другие опции; колонка тип соответствует значению optval, таблица 7.2):

Таблица 7.2. Опции соединителей для оператора setsockopt.

ОпцияТипНазначение
SO_BROADCASTбулевПозволяет передачу широковещательных сообщений
SO_DEBUGбулевОсуществляет запись отладочных данных.
SO_DONTLINGERбулевРазрешает закрытие без ожидания при наличии не отосланной информации. Эта опция эквивалентна SO_LINGER с l_onoff=0.
SO_DONTROUTEбулевЗапрет маршрутизации - отправка непосредственно интерфейсу.
SO_KEEPALIVEбулевПосылка сообщения keepalive (“еще жив”)
SO_LINGERструктураЗадержка закрытия в случае наличия не отосланной информации.
SO_OOBINLINEбулевПринимает информацию, приходящуюю по независимым каналам, в общем потоке данных
SO_RCVBUFцелыйОпределяет размер входного буфера
SO_REUSEADDRбулевПозволяет соединителю использовать адрес, который уже задействован
SO_SNDBUFцелыйОпределяет размер выходного буфера
TCP_NODELAYбулевЗапрещает использование алгоритма Нагля (TCP).




Содержание  Назад  Вперед