1

我是 Clojure 的新手,需要一个简单的示例来在给定端口上创建与 IP 的连接(实际上是现成的系统通过 TELNET 连接到该端口)。向此连接发送一些字符,接收响应并显示(解释)结果。

有人可以通过代码显示,使用上述连接进行远程登录。提前致谢。

4

1 回答 1

5

最好的办法是使用 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))))
于 2012-05-04T11:00:56.083 回答