TCP/IP ソケット (sbcl および Linux システムの usocket ライブラリを使用) を使用して、Lisp スクリプトから別のプログラムに通信しようとしています。
これまでのところ、次のコードを取得しました。
(require 'asdf)
(require 'usocket)
(defun start-client ()
( usocket:with-client-socket
(socket stream "0.0.0.0" 30000)
(loop for x in '("1~%" "2~%" "3~%" "4~%" "5~%") do
(format stream x)
(force-output stream)
(sleep 1)
;;(format t "~A~%" (read-line stream))
)
)
)
(start-client)
コメント行を除いて、コードは正常に機能します。
(format t "~A~%" (read-line stream))
したがって、メッセージ1、2、3 ...を他のソケット(別のプログラム)から送受信し、他のプログラムからlispにメッセージを送り返すことができます。しかし、lisp からメッセージを読み取るために行のコメントを外すと、上記のコードは停止して永遠に待機しているように見えます。