Сетевые параметры
При создании сетевого процесса можно указать следующие сетевые параметры. За исключением :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, после последнего использования этого порта (любым процессом на узле) может пройти некоторое время, прежде чем станет возможным запустить новый сервер на этом порту. :nodelay nodelay-flagЕсли значение nodelay-flag отлично от
nil, для сокета включается параметрTCP_NODELAY. Это отключает алгоритм Нейгла: сетевые сегменты отправляются как можно скорее, даже если в них мало данных. Это уменьшает задержку в сетевом соединении, но может привести к отправке большого количества небольших пакетов.
- Функция: set-network-process-option process option value &optional no-error
-
Эта функция задаёт или изменяет сетевой параметр сетевого процесса process. Допустимые параметры и значения такие же, как для
make-network-process. Если no-error отлично отnil, эта функция возвращаетnilвместо сигнала об ошибке, если option не является поддерживаемым параметром. При успешном завершении функция возвращаетt.Текущее значение параметра можно получить с помощью функции
process-contact.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Network-Options.html