Lisp 如何使用telnet在较低级别与Swank服务器交互?

Lisp 如何使用telnet在较低级别与Swank服务器交互?,lisp,common-lisp,read-eval-print-loop,swank,Lisp,Common Lisp,Read Eval Print Loop,Swank,我试图在命令行中使用Swank服务器(没有具体的生产目的,只是想用一些骇人的想法来理解一些事情,以备以后使用),但我无法从telnet会话中输入什么来获得任何可用的答案;例如,我如何评估(+1) A说明: 如果您熟悉swank协议,那么您确实可以与swank服务器进行通信,而swank协议似乎没有充分的文档记录(例如,请参见此处:)。但是,这会暴露网络上的TCP套接字,这可能是不安全的。有一次我也试过,但我对IPC的速度不满意 这个链接实际上给出了一些提示,但不幸的是没有例子。我没有得到任何结果

我试图在命令行中使用Swank服务器(没有具体的生产目的,只是想用一些骇人的想法来理解一些事情,以备以后使用),但我无法从
telnet
会话中输入什么来获得任何可用的答案;例如,我如何评估
(+1)

A说明:

如果您熟悉swank协议,那么您确实可以与swank服务器进行通信,而swank协议似乎没有充分的文档记录(例如,请参见此处:)。但是,这会暴露网络上的TCP套接字,这可能是不安全的。有一次我也试过,但我对IPC的速度不满意

这个链接实际上给出了一些提示,但不幸的是没有例子。我没有得到任何结果

这就是我所尝试的;在分别启动了一台服务器后

(swank:create-server :port 4005  :dont-close t :style NIL)
我试过这样的方法:

~ $ telnet localhost:4005
00001e(swank:listener-eval (+ 1 2))
并收到以下错误消息:

" "Reader error in file #<string-input stream from \"(swan...\" 0x6045ce0640>, position 20:
Cannot find the external symbol LISTENER-EVAL in #<\"SWANK\" package>.")Connection closed by foreign host
文件#中的读取器错误,位置20: 在由外部主机关闭的#.“”)连接中找不到外部符号LISTENER-EVAL
在这种情况下,我应该键入的字符串是什么?

我成功地做到了这一点:

00003e(:emacs-rex (swank:interactive-eval "(+ 1 2)") "cl-user" t 8)
请注意,首先有一个
:emacs rex
关键字,要计算的表单是如何在字符串中出现的。这里的8只是一个任意值。答复首先以
00A1C8(:缩进更新…
开始,然后是:

000031(:return (:ok "=> 3 (2 bits, #x3, #o3, #b11)") 8)

怎么样
swank repl:listener eval
?您好@RainerJoswig如果我没有错,我会在键入答案后立即收到外国主机关闭的连接。