41.17.2 网络选项

创建网络进程时可指定以下网络选项。除 :reuseaddr 外,其余选项均可后续通过 set-network-process-option 设置或修改。

对服务端进程,通过 make-network-process 指定的选项不会被客户端连接继承,因此需要在每个子连接创建时为其设置必要选项。

:bindtodevice device-name

device-name 为标识网卡名称的非空字符串(见 network-interface-list),则仅处理从该网卡接收的数据包。若 device-namenil(默认值),则处理任意网卡接收的数据包。

部分系统上使用该选项可能需要特殊权限。

:broadcast broadcast-flag

对数据报进程,若 broadcast-flagnil,进程可接收发送至广播地址的数据报,并可向广播地址发送数据包。该选项对流连接无效。

:dontroute dontroute-flag

dontroute-flagnil,进程仅可向与本地主机同网段的主机发送数据。

:keepalive keepalive-flag

对流连接,若 keepalive-flagnil,启用底层保活报文交换。

:linger linger-arg

linger-argnil,在连接被删除前(见 delete-process)等待所有排队数据包成功发送。若 linger-arg 为整数,则指定关闭连接前等待排队数据包发送的最大秒数。默认值为 nil,表示进程删除时丢弃未发送的排队数据包。

:oobinline oobinline-flag

对流连接,若 oobinline-flagnil,带外数据将在普通数据流中接收;否则忽略带外数据。

:priority priority

将该连接上发送数据包的优先级设为整数 priority。该数值的含义与协议相关,例如设置此连接上发送 IP 报文的 TOS(服务类型)字段;也可能产生系统相关效果,如在网卡上选择特定输出队列。

:reuseaddr reuseaddr-flag

对流服务端进程,若 reuseaddr-flagnil(默认值),允许该服务端复用指定端口号(见 :service),前提是本机无其他进程已监听该端口。若 reuseaddr-flagnil,则在该端口最后一次被使用后,可能存在一段时间无法在该端口创建新服务端。

Function: set-network-process-option process option value &optional no-error

该函数为网络进程 process 设置或修改网络选项。支持的选项与取值规则同 make-network-process。若 no-errornil,当 option 为不支持的选项时函数返回 nil 而非抛出错误。操作成功完成时返回 t

可通过 process-contact 函数获取选项的当前设置。