我有一台连接到我的机器(本地到我的电脑)的目标机器(基于 *nix)。我想在这个目标上执行一些命令。
所以,我正在使用 Java 套接字来实现相同的目的。
socket = new Socket("100.200.400.300", 23, null, 0 );
remote local
在这里,在上述行之后 -
socket.isConnected() returns true.
现在,我有这个 Socket 对象的 I/O 流,我正在做 -
while((string = bufferedReader.readLine()) != null) {
outputStream.write(string .getBytes());
outputStream.flush(); }
缓冲读取器从本地文件读取命令并写入套接字对象以在目标机器上执行。下面从 Socket 读取的代码 -
while((myIntVar = is.read()) != -1) {
//Below line prints some junk data ... hash, updaward arrow and spaces and then
// loop hangs to raise a Socket I/O exception.
System.out.println((char) i);
stringBuffer.append((char) i);}
在这里,我的理解是,因为我已经建立了套接字连接,所以我可以传递我的命令,这些命令应该在另一端执行(如果错了,请纠正我)。
但这不起作用。正如我上面提到的,我收到了垃圾字符,还有一件事 - 我没有传递用户名和密码来建立套接字连接 - 我是否必须像我们为 telnet 所做的那样传递它(如何... ? 我在这里迷路了)。
而且,仅供参考 - 上面的代码就是我所拥有的(没有在其他各种线程中提到的服务器或客户端代码)。