#:g1: KMRCLを眺める(242) listener.lisp

Posted 2022-01-01 14:13:22 GMT

KMRCLを眺めるの242回目。今回は、listener.lispを眺めます。

listener.lisp を眺める

listener.lisp でいうlistenerはLisp処理系側でサーバを起動し、複数のコネクションを待ち受けるようなもののようです。
listenerクラスが複数のworkerクラスを保持するような構成になっています。

init/listener stop-all/listener

サーバの起動

(kl:init/listener
 (make-instance 'kl:listener
                :port 4006
                :function (lambda (io)
                            (write-line (read-line io nil) io)
                            (write-line "さようなら" io)
                            (force-output io)))
 :start)

外部から接続

% telnet localhost 4006
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
8888
8888
さようなら
Connection closed by foreign host.

サーバ終了

(kl:stop-all/listener)

なお、KMRCL内でのlistener.lispの応用としては、repl.lispがあります。


HTML generated by 3bmd in LispWorks 8.0.0

comments powered by Disqus