我是 Clojure 的新手,需要一个简单的示例来在给定端口上创建与 IP 的连接(实际上是现成的系统通过 TELNET 连接到该端口)。向此连接发送一些字符,接收响应并显示(解释)结果。
有人可以通过代码显示,使用上述连接进行远程登录。提前致谢。
最好的办法是使用 clojure 的java interop来包装现有的 telnet 客户端库
Apache commons-net将是一个很好的第一站。 有一个 telnet 客户端的示例(在 java 中)应该可以直接移植
例如,您经常会发现使用 clojure java interop 在 java! 中对其进行编码更容易。
// from TelnetClientExample
tc = new TelnetClient();
TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT100", false, false, true, false);
EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true);
在clojure中看起来像这样:
(ns telnet.core
(:import [org.apache.commons.net.telnet TelnetClient TelnetNotificationHandler SimpleOptionHandler EchoOptionHandler TerminalTypeOptionHandler SuppressGAOptionHandler InvalidTelnetOptionException]))
(def tc
(doto (TelnetClient.)
(.addOptionHandler (TerminalTypeOptionHandler.
"VT100" false false true false))
(.addOptionHandler (EchoOptionHandler.
true false true false))
(.addOptionHandler (SuppressGAOptionHandler.
true true true))))