利用java来telnet到某个服务器的程序运行不了,如何修改?
您好,您这样: package place.in.javaeye;import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;public class Shell{private TelnetClient telnet = new TelnetClient();private InputStream in;private PrintStream out;private char prompt = '$';// 普通用户结束public Shell(String ip, int port, String user, String password){try{telnet.connect(ip, port);in = telnet.getInputStream();out = new PrintStream(telnet.getOutputStream());// 根据root用户设置结束符this.prompt = user.equals("root") ? '#' : '>';login(user, password);}catch (Exception e){e.printStackTrace();}}/*** 登录** @param user* @param password*/public void login(String user, String password){//readUntil("login:");readUntil("login:");write(user);readUntil("Password:");write(password);readUntil(prompt + "");}/*** 读取分析结果** @param pattern* @return*/public String readUntil(String pattern){try{char lastChar = pattern.charAt(pattern.length() - 1);StringBuffer sb = new StringBuffer();char ch = (char)in.read();while (true){sb.append(ch);if (ch == lastChar){if (sb.toString().endsWith(pattern)){return sb.toString();}}ch = (char)in.read();System.out.print(ch);}}catch (Exception e){e.printStackTrace();}return null;}/*** 写操作** @param value*/public void write(String value){try{out.println(value);out.flush();}catch (Exception e){e.printStackTrace();}}/*** 向目标发送命令字符串** @param command* @return*/public String sendCommand(String command){try{write(command);return readUntil(prompt + "");}catch (Exception e){e.printStackTrace();}return null;}/*** 关闭连接*/public void disconnect(){try{telnet.disconnect();}catch (Exception e){e.printStackTrace();}}public static void main(String[] args) {TelnetClient telnet = new TelnetClient();try {Shell she =new Shell("10.**.***.***", 23, "***", "***");System.out.println(she);System.out.println(she.sendCommand("ls"));she.disconnect();}catch (Exception e) {// TODO: handle exception}} }

java实现Telnet功能。
/*我想这就是你想要的telnet吧,既然我下面用的是apache开源包,你下来自己 *看看能不能自己重写。方法已经给你提供了。*要是可以的话结题吧.哈O(∩_∩)*/import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;/*** 利用apache net 开源包,使用telnet方式获取AIX主机信息* @version 1.2*/public class NetTelnet {// Telnet对象private TelnetClient telnet = new TelnetClient();private InputStream in;private PrintStream out;// 提示符。具体请telnet到AIX主机查看private char prompt = '#';// telnet端口private String port;// 用户private String user;// 密码private String password;// IP地址private String ip;public NetTelnet() {try {// AIX主机IPthis.ip = "219.243.12.10";this.password = "05933663007";this.user = "administrator";this.port = "23";telnet.connect(ip, Integer.parseInt(port));System.out.println("开始获取输入流...");in = telnet.getInputStream();out = new PrintStream(telnet.getOutputStream());// 登录/* readUntil("login: ");write(user);readUntil("Password: ");write(password);readUntil(prompt + " ");*/} catch (Exception e) {e.printStackTrace();}}/*** 读取分析结果** @param pattern* @return*/public String readUntil(String pattern) {try {char lastChar = pattern.charAt(pattern.length() - 1);StringBuffer sb = new StringBuffer();char ch = (char) in.read();while (true) {sb.append(ch);if (ch == lastChar) {if (sb.toString().endsWith(pattern)) {return sb.toString();}}ch = (char) in.read();}} catch (Exception e) {e.printStackTrace();}return null;}/*** 写** @param value*/public void write(String value) {try {out.println(value);out.flush();} catch (Exception e) {e.printStackTrace();}}/*** 向目标发送命令字符串** @param command* @return*/public String sendCommand(String command) {try {write(command);return readUntil(prompt + " ");} catch (Exception e) {e.printStackTrace();}return null;}/*** 关闭连接**/public void disconnect() {try {telnet.disconnect();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {try {System.out.println("开始执行telnet......");NetTelnet telnet = new NetTelnet();// 通过aix的命令“查找主机名称”获取数据// 命令是 "hostname"// 不熟悉命令的参考<
>System.out.println("开始发送hostname命令");String result = telnet.sendCommand("hostname");System.out.println("显示结果");System.out.println(result);// 最后一定要关闭telnet.disconnect();} catch (Exception e) {e.printStackTrace();}} }

java实现telnet 如何发送 y/n
参考一下代码:用telnet是这样:telnet time-A.timefreq.bldrdoc.gov 13用socket是这样:1. import java.io.*; 2. import java.net.*; 3. 4. /** 5. This program makes a socket connection to the atomic clock 6. in Boulder, Colorado, and prints the time that the 7. server sends. 8. */ 9. public class SocketTest10. {11. public static void main(String[] args)12. {13. try14. {15. Socket s = new Socket("time-A.timefreq.bldrdoc.gov",16. 13);17.18. BufferedReader in = new BufferedReader19. (new InputStreamReader(s.getInputStream()));20. boolean more = true;21. while (more)22. {23. String line = in.readLine();24. if (line == null)25. more = false;26. else27. System.out.println(line);28. }29.30. }31. catch (IOException e)32. {33. e.printStackTrace();34. }35. }36. }
你网上copy的源代码吧,肯定try模块里面的处理机制要么没抄全要么源代码里面就没给你。自己加个输入后的判断执行语句就好了

java代码访问telnet,并受到返回值
那就自己重写方法,把返回的CMD信息字符串截取,截取你想要的信息。做一个工具类,直接调用工具类方法就行了,然后你还可以把工具类放到CSDN上赚积分,哈哈。

JAVA类如何实现telnet功能
/*我想这就是你想要的telnet吧,既然我下面用的是apache开源包,你下来自己 *看看能不能自己重写。方法已经给你提供了。*要是可以的话结题吧.哈O(∩_∩)*/import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;/*** 利用apache net 开源包,使用telnet方式获取AIX主机信息* @version 1.2*/public class NetTelnet {// Telnet对象private TelnetClient telnet = new TelnetClient();private InputStream in;private PrintStream out;// 提示符。具体请telnet到AIX主机查看private char prompt = '#';// telnet端口private String port;// 用户private String user;// 密码private String password;// IP地址private String ip;public NetTelnet() {try {// AIX主机IPthis.ip = "219.243.12.10";this.password = "05933663007";this.user = "administrator";this.port = "23";telnet.connect(ip, Integer.parseInt(port));System.out.println("开始获取输入流...");in = telnet.getInputStream();out = new PrintStream(telnet.getOutputStream());// 登录/* readUntil("login: ");write(user);readUntil("Password: ");write(password);readUntil(prompt + " ");*/} catch (Exception e) {e.printStackTrace();}}/*** 读取分析结果** @param pattern* @return*/public String readUntil(String pattern) {try {char lastChar = pattern.charAt(pattern.length() - 1);StringBuffer sb = new StringBuffer();char ch = (char) in.read();while (true) {sb.append(ch);if (ch == lastChar) {if (sb.toString().endsWith(pattern)) {return sb.toString();}}ch = (char) in.read();}} catch (Exception e) {e.printStackTrace();}return null;}/*** 写** @param value*/public void write(String value) {try {out.println(value);out.flush();} catch (Exception e) {e.printStackTrace();}}/*** 向目标发送命令字符串** @param command* @return*/public String sendCommand(String command) {try {write(command);return readUntil(prompt + " ");} catch (Exception e) {e.printStackTrace();}return null;}/*** 关闭连接**/public void disconnect() {try {telnet.disconnect();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {try {System.out.println("开始执行telnet......");NetTelnet telnet = new NetTelnet();// 通过aix的命令“查找主机名称”获取数据// 命令是 "hostname"// 不熟悉命令的参考<
>System.out.println("开始发送hostname命令");String result = telnet.sendCommand("hostname");System.out.println("显示结果");System.out.println(result);// 最后一定要关闭telnet.disconnect();} catch (Exception e) {e.printStackTrace();}} }
/*我想这就是你想要的telnet吧,既然我下面用的是apache开源包,你下来自己 *看看能不能自己重写。方法已经给你提供了。*要是可以的话结题吧.哈O(∩_∩)*/import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;/*** 利用apache net 开源包,使用telnet方式获取AIX主机信息* @version 1.2*/public class NetTelnet {// Telnet对象private TelnetClient telnet = new TelnetClient();private InputStream in;private PrintStream out;// 提示符。具体请telnet到AIX主机查看private char prompt = '#';// telnet端口private String port;// 用户private String user;// 密码private String password;// IP地址private String ip;public NetTelnet() {try {// AIX主机IPthis.ip = "219.243.12.10";this.password = "05933663007";this.user = "administrator";this.port = "23";telnet.connect(ip, Integer.parseInt(port));System.out.println("开始获取输入流...");in = telnet.getInputStream();out = new PrintStream(telnet.getOutputStream());// 登录/* readUntil("login: ");write(user);readUntil("Password: ");write(password);readUntil(prompt + " ");*/} catch (Exception e) {e.printStackTrace();}}/*** 读取分析结果** @param pattern* @return*/public String readUntil(String pattern) {try {char lastChar = pattern.charAt(pattern.length() - 1);StringBuffer sb = new StringBuffer();char ch = (char) in.read();while (true) {sb.append(ch);if (ch == lastChar) {if (sb.toString().endsWith(pattern)) {return sb.toString();}}ch = (char) in.read();}} catch (Exception e) {e.printStackTrace();}return null;}/*** 写** @param value*/public void write(String value) {try {out.println(value);out.flush();} catch (Exception e) {e.printStackTrace();}}/*** 向目标发送命令字符串** @param command* @return*/public String sendCommand(String command) {try {write(command);return readUntil(prompt + " ");} catch (Exception e) {e.printStackTrace();}return null;}/*** 关闭连接**/public void disconnect() {try {telnet.disconnect();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {try {System.out.println("开始执行telnet......");NetTelnet telnet = new NetTelnet();// 通过aix的命令“查找主机名称”获取数据// 命令是 "hostname"// 不熟悉命令的参考<>System.out.println("开始发送hostname命令");String result = telnet.sendCommand("hostname");System.out.println("显示结果");System.out.println(result);// 最后一定要关闭telnet.disconnect();} catch (Exception e) {e.printStackTrace();}} }
这里似乎不是要实现telnet,而是实现ftp http://www.builder.com.cn/2007/1129/660065.shtml
泪流满面!太难了
参考 http://hi.baidu.com/javagarden/blog/item/cd730801fcaa15077aec2c5e.html

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/43773.html。