使用 Commons Net 2.0,一个简单的JAVA Telnet 客户端实现

一个简单的JAVA Telnet 客户端实现

 

commons-net-2.0.jar telnet功能的简单使用,

这个包实现了很多基本的基于Intenet协议,下面是 commons 支持的协议:

  • FTP/FTPS
  • NNTP
  • SMTP
  • POP3
  • Telnet
  • TFTP
  • Finger
  • Whois
  • rexec/rcmd/rlogin
  • Time (rdate) and Daytime
  • Echo
  • Discard
  • NTP/SNTP

下面简单写一个程序做telnet的测试,此程序仅作测试,所以很多写法并不规范。

 

 

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintStream;

 

import org.apache.commons.net.telnet.TelnetClient;

 

public class CommonsTelnetTest {

       private final String ip = ""; // 要telnet的IP地址

       private final String port = "23"; //端口号,默认23

       private final String user = "";//用户名

       private final String pwd = ""; //用户密码

       private final String osTag = "$";// 系统标示符号

       private final TelnetClient tc = new TelnetClient(); //新建一个 TelnetClient对象,此对象是 commons-net-2.0.jar包提供

       private InputStream in; // 输入流,接收返回信息

       private PrintStream out; //像 服务器写入 命令

 

       public void connect() {

              try {

                     tc.connect(ip, Integer.parseInt(port));

                     in = tc.getInputStream();

                     out = new PrintStream(tc.getOutputStream());

              } catch (Exception e) {

                     System.out.println("connect error !");

              }

       }

 

       public String execute(String command) {

              connect();

              out.println(command);

              out.flush();

 

              StringBuffer sb = new StringBuffer();

 

              try {

                     char ch = (char) in.read();

                     while (true) {

                            sb.append(ch);

                            if (ch == osTag.charAt(osTag.length() - 1)) {

                                   if (sb.toString().endsWith(osTag))

                                          return sb.toString();

                            }

                            ch = (char) in.read();

                     }

 

              } catch (IOException e) {

                     e.printStackTrace();

              }

              return "error! when the program execute";

       }

       

       public static void main(String [] args){

              System.out.println(new CommonsTelnetTest().execute("ls"));

       }

 

}

 

 

这是 commons 2.0 API的地址 :http://commons.apache.org/net/apidocs/index.html

 

你可能感兴趣的:(java,apache,.net,unix)