一个简单的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