我正在尝试使用 TCP/IP 套接字(在 Linux 系统中使用 sbcl 和 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 读取消息的行时,上面的代码似乎停止并永远等待。