首先,启动两个 CLISP ,为了便于区分,服务端我用 EMACS 启动 CLISP,客户端直接在终端中启动 CLISP,服务端需要先执行两条语句:
(defparameter my-socket (socket-server 4321))
(defparameter my-stream (socket-accept my-socket))
第一句创建一个端口为4321的套接字服务端。
第二句定义 my-stream 来收发消息
截图如下:
然后在终端窗口启动一个 CLISP 作为客户端,在客户端中执行如下命令:
(defparameter my-stream (socket-connect 4321 "127.0.0.1"))
截图如下:
这条语句用来连接到服务端启动的端口上。
这时就可以进行通信了,比如在客户端输入命令:
(print "Yo Server!" my-stream)
(print "你好,服务端!" my-stream)
然后在服务端输入命令:
(read my-stream)
(read my-stream)
就可以收到来自客户端的信息,如下图所示:
同样地,在服务端也可以向客户端发送信息,使用类似的语句,截图如下:
本文例程来自《Land of Lisp》