以下のネットワークオプションはネットワークプロセス作成時に指定できます。:reuseaddr
を除き、set-network-process-option
を使用してこれらのオプションを後からセットや変更することもできます。
サーバープロセスにたいしては、make-network-process
で指定されたオプションはクライアントに継承されないので、子接続が作成されるたびに必要なオプションをセットする必要があるでしょう。
:bindtodevice device-name
device-nameがネットワークインターフェースを指定する空でない文字列なら、そのインターフェースで受信したパケットだけを処理する。device-nameがnil
(デフォルト)なら任意のインターフェースが受信したパケットを処理する。
このオプションの使用にたいして特別な特権を要求するシステムがいくつかあるかもしれない。
:broadcast broadcast-flag
データグラムプロセスにたいしてbroadcast-flagが非nil
なら、そのプロセスはブロードキャストアドレスに送信されたデータグラムパケットを受信して、ブロードキャストアドレスにパケットを送信できるだろう。これはストリーム接続では無視される。
:dontroute dontroute-flag
dontroute-flagが非nil
ならプロセスはローカルホストと同一ネットワーク上のホストだけに送信することができる。
:keepalive keepalive-flag
ストリーム接続にたいしてkeepalive-flagが非nil
なら、低レベルのkeep-aliveメッセージの交換が有効になる。
:linger linger-arg
linger-argが非nil
なら、接続を削除(delete-process
を参照)する前にキューされたすべてのパケットの送信が成功するまで待機する。linger-argが整数なら、接続クローズ前のキュー済みパケット送信のために待機する最大の秒数を指定する。デフォルトはnil
で、これはプロセス削除時に未送信のキュー済みパケットを破棄することを意味する。
:oobinline oobinline-flag
ストリーム接続にたいしてoobinline-flagが非nil
なら、通常のデータストリーム内の帯域外(out-of-band)データを受信して、それ以外なら帯域外データは破棄する。
:priority priority
この接続で送信するパケットの優先順位を整数priorityにセットする。たとえばこの接続で送信するIPパケットのTOS(type of service)フィールドにセットする等、この数字の解釈はプロトコルに固有である。またそのネットワークインターフェース上で特定の出力キューを選択する等、これにはシステム依存の効果もある。
:reuseaddr reuseaddr-flag
ストリームプロセスサーバーにたいしてreuseaddr-flagが非nil
(デフォルト)なら、そのホスト上の別プロセスがそのポートですでにlistenしていなければ、このサーバーは特定のポート番号(:service
を参照)を再使用できる。reuseaddr-flagがnil
なら、(そのホスト上の任意のプロセスが)そのポートを最後に使用した後、そのポート上で新たなサーバーを作成するのが不可能となるような一定の期間が存在するかもしれない。
この関数はネットワークプロセスprocessにたいしてネットワークオプションのセットや変更を行う。指定できるオプションはmake-network-process
と同様。no-errorが非nil
なら、optionがサポートされないオプションの場合に、この関数はエラーをシグナルせずにnil
をリターンする。この関数が成功裏に完了したらt
をリターンする。
あるオプションのカレントのセッティングはprocess-contact
関数を通じて利用できる。