我是Clojure的新手,需要一个简单的例子来创建给定端口上的IP连接(实际上现成的系统通过TELNET连接到这个端口).将一些字符发送到此连接,接收响应并显示(解释)结果.
有人可以通过代码显示,这个telnetting东西与上述连接.提前致谢.
最好的办法是使用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)