telnet in clojure

Avi*_*Avi 1 telnet clojure

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

有人可以通过代码显示,这个telnetting东西与上述连接.提前致谢.

sw1*_*1nn 5

最好的办法是使用clojure的java interop来包装现有的telnet客户端库

Apache commons-net将是一个很好的第一站. 有一个telnet客户端的示例(在java中)应该很容易移植

例如,您经常会发现使用在java中编码的clojure java interop更容易!

// 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);
Run Code Online (Sandbox Code Playgroud)

在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))))
Run Code Online (Sandbox Code Playgroud)

  • 我已经给了你很多东西,是的,我可以为你编写全部内容,但这不是Stackoverflow方式.如果您编写一些代码并遇到特定问题,请创建一个新问题,我们将从那里开始. (3认同)