4

コマンド ラインから Swank サーバーを操作しようとしています (特定の生産目的はなく、後でハッキーなアイデアを念頭に置いて物事を理解しようとしているだけです)、telnet取得するためにセッションから何を入力できるかわかりません使用可能な回答; たとえば、どのように評価できますか(+ 1 1)

前の質問は次のように述べています。

十分に文書化されていないように見えるスワンクプロトコルに慣れていれば、スワンクサーバーと通信することは実際に可能です(たとえば、ここを参照してください:https ://github.com/astine/swank-client/blob/master/swank-description .マークダウン)。ただし、これはネットワーク上に 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

その場合、入力する必要がある文字列は何でしょうか?

4

1 に答える 1

3

私はこの仕事をすることができました:

00003e(:emacs-rex (swank:interactive-eval "(+ 1 2)") "cl-user" t 8)

最初に:emacs-rexキーワードがあり、評価するフォームが文字列にあることに注意してください。ここでの 8 は任意の値です。返信は最初に で始まり00A1C8(:indentation-update ...)、その後に次のように続きます。

000031(:return (:ok "=> 3 (2 bits, #x3, #o3, #b11)") 8)
于 2019-07-30T16:32:20.863 に答える