41.17.2 Параметры сети

Следующие сетевые параметры могут быть указаны при создании сетевого процесса. За исключением :reuseaddr, вы также можете установить или изменить эти параметры позже, используя set-network-process-option.

Для серверного процесса параметры, указанные с make-network-process, не наследуются клиентскими соединениями, поэтому вам потребуется установить необходимые параметры для каждого дочернего соединения по мере его создания.

:bindtodevice device-name

Если device-name — это непустая строка, идентифицирующая имя сетевого интерфейса (см. network-interface-list), обрабатываются только пакеты, полученные на этом интерфейсе. Если device-name равно nil (по умолчанию), обрабатываются пакеты, полученные на любом интерфейсе.

Использование этого параметра может потребовать специальных привилегий в некоторых системах.

:broadcast broadcast-flag

Если broadcast-flag не равно nil для процесса датаграмм, процесс будет принимать датаграммы, отправленные на широковещательный адрес, и сможет отправлять пакеты на широковещательный адрес. Это игнорируется для потокового соединения.

:dontroute dontroute-flag

Если dontroute-flag не равно nil, процесс может отправлять данные только хостам в той же сети, что и локальный хост.

:keepalive keepalive-flag

Если keepalive-flag не равно nil для потокового соединения, включается обмен низкоуровневыми сообщениями поддержания соединения.

:linger linger-arg

Если linger-arg не равно nil, ожидается успешная передача всех отложенных пакетов в соединении перед его удалением (см. delete-process). Если linger-arg — целое число, оно указывает максимальное время в секундах, в течение которого ожидается отправка отложенных пакетов перед закрытием соединения. По умолчанию nil, что означает отбрасывание не отправленных отложенных пакетов при удалении процесса.

:oobinline oobinline-flag

Если oobinline-flag не равно nil для потокового соединения, нетекущие данные принимаются в обычном потоке данных. В противном случае нетекущие данные игнорируются.

:priority priority

Установите приоритет для пакетов, отправляемых по этому соединению, равным целому числу priority. Интерпретация этого числа зависит от протокола; например, установка поля TOS (тип обслуживания) в IP-пакетах, отправляемых по этому соединению. Это также может иметь системные эффекты, такие как выбор определенной выходной очереди на сетевом интерфейсе.

:reuseaddr reuseaddr-flag

Если reuseaddr-flag не равно nil (по умолчанию) для серверного потокового процесса, разрешается этому серверу повторно использовать определенный номер порта (см. :service), если только другой процесс на этом хосте не прослушивает этот порт. Если reuseaddr-flag равно nil, может быть период времени после последнего использования этого порта (любым процессом на хосте), когда невозможно создать новый сервер на этом порту.

Функция: set-network-process-option process option value &optional no-error

Эта функция устанавливает или изменяет сетевой параметр для сетевого процесса process. Принимаемые параметры и значения такие же, как для make-network-process. Если no-error не равно nil, эта функция возвращает nil вместо сигнализации об ошибке, если option не является поддерживаемым параметром. Если функция успешно завершается, она возвращает t.

Текущее значение параметра доступно через функцию process-contact.