java控制台上的Telnet连接
我正在Linux操作系统中使用eclipse,这就是我想要做的(仅在java控制台中)-java控制台上的Telnet连接,java,linux,eclipse,console,telnet,Java,Linux,Eclipse,Console,Telnet,我正在Linux操作系统中使用eclipse,这就是我想要做的(仅在java控制台中)- 通过(当前)telnet客户端连接到另一台远程计算机 在远程系统中执行一个简单的命令(类似ls) 可能吗?我确信Runtime.getRuntime.exec()不会工作。所以使用了commons.netjar文件。这是我的代码片段 public static void testMount() throws Exception { String osName = ""; Scanner sc
Runtime.getRuntime.exec()
不会工作。所以使用了commons.netjar文件。这是我的代码片段
public static void testMount() throws Exception {
String osName = "";
Scanner sc = new Scanner(System.in);
TelnetClient telnet = new TelnetClient();
System.out.println("Operating System: ");
osName = sc.next();
System.out.println(osName);
String volumeToMount = "";
String mountPoint = "";
String ipAddress = "";
int port = 23;
if (osName.equalsIgnoreCase("Linux")) {
// Linux
ipAddress = "1.2.3.4"; //
telnet.connect(ipAddress, port);
volumeToMount = "/dev/hda1";
mountPoint = "/data/Temp";
}
mountFileSystem(volumeToMount, mountPoint);
}
如果您有一个现有的示例,或者您可以修改我的代码,如果您能在这里分享,我将非常感谢您 使用Apache Commons Net
TelnetClient
时,必须使用对象返回的InputStream
和OutputStream
(请参见getInputStream()
和getOutputStream()
方法)来读取数据和发送数据(命令)。有一个很好的例子(请参阅Telnet和Commons/NET部分)。使用Apache Commons NETTelnetClient
必须使用对象返回的InputStream
和OutputStream
方法(请参阅getInputStream()
和getOutputStream()
方法)来读取数据和发送数据(命令). 这里有一个很好的例子(请参见章节Telnet和Commons/NET)。为什么要自己实现Telnet?有几个库做得很好。看看雅加达网络包:为什么要自己实现Telnet?有几个库做得很好。查看雅加达网络包:非常感谢。连接已建立。但我不能通过发出ls或cd/tmp等命令进行交互。@hari:为什么不能?您看过我链接的示例了吗(使用TelnetClient
getgetInputStream()
和getOutputStream())
?如果是,您会遇到什么错误?没有错误。但是在登录后,我发出了ls命令,什么也没有发生。执行也不会终止。如果看不到您的实际代码,很难判断。如何发出ls
命令?非常感谢..连接已经建立。但是我无法通过发出命令进行交互例如ls或cd/tmp等。@hari:为什么不呢?你看过我链接的示例了吗(使用TelnetClient
getInputStream()
和getOutputStream()
?如果是,您会遇到什么错误?没有错误。但是在登录后,我给出了ls命令,什么也没有发生。执行也不会终止。如果没有看到您的实际代码,很难判断。您如何给出ls
命令?他使用的是org.apache.commons.net.telnet.TelnetClient只是省略了他使用的是org.apache.commons.net.telnet.TelnetClient,为了简洁起见,省略了import语句。