Таблица 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). |
Программа getsockopt(s, int level, int optname, char far*optval, int FAR* optlen) позволяет получить значение опции для любого типа соединителей. Значения параметров обращения аналогичны setsockopt. Ниже представлена таблица (7.3) поддерживаемых опций.
В среде Windows существуют аналоги (асинхронные) многих из приведенных выше операторов. Имена этих операторов имеют префикс WSA (Windows Socket Asynchronous). Асинхронными они названы по той причине, что их выполнение сопряжено с определенным диалогом и ни начало, ни завершение не ограничено какими-либо временными рамками. Список таких операторов представлен в таблицах 7.4 и 7.5 (версия windows socket 2.2).
Таблица 7.3. Опции соединителей для оператора getsockopt
Опция |
Тип |
Назначение |
SO_ACCEPTCONN |
булев |
Соединитель в режиме listen |
SO_BROADCAST |
булев |
Разрешена передача широковещательных сообщений |
SO_DEBUG |
булев |
Отладочный режим разрешен |
SO_DONTLINGER |
булев |
Если равен TRUE, SO_LINGER-опция запрещена |
SO_DONTROUTE |
булев |
Запрет маршрутизации. |
SO_ERROR |
целое |
Выдает статус ошибок |
SO_KEEPALIVE |
булев |
Сообщение keepalive (“еще жив”) послано |
SO_LINGER |
структура |
Возвращает текущие значения опции SO_LINGER |
SO_OOBINLINE |
булев |
Принимает информацию, приходящуюю по независимым каналам, в общем потоке данных |
SO_RCVBUF |
целый |
Сообщает размер входного буфера |
SO_REUSEADDR |
булев |
Соединителю разрешено использовать адрес, который уже задействован |
SO_SNDBUF |
целый |
Сообщает размер выходного буфера |
SO_TYPE |
целый |
Тип соединителя (например, SOCK_STREAM) |
TCP_NODELAY |
булев |
Использование алгоритма Нагля запрещено (tcp). |