首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

远程桌面不能运作写个java程序远程cmd

2012-12-20 
远程桌面不能运行写个java程序远程cmd命令转发的东西总共 有三个类 SocketServerTest调用服务器 cmd进程 i

远程桌面不能运行写个java程序远程cmd
命令转发的东西
总共 有三个类
SocketServerTest  调用服务器 cmd进程
import java.net.*;
import java.io.*;
public class SocketServerTest{
int port=2345; //端口号
ServerSocket serverSocket; //服务器套接字
public SocketServerTest() throws IOException{
   Process proc=Runtime.getRuntime().exec("cmd");//掉用cmd进程
   serverSocket=new ServerSocket(port); //实例化套接字
   System.out.println("start server at port "+port); //在命令窗口输出提示信息
   while (true){ //一直等待客户端连接
    Socket client=serverSocket.accept();  //等待连接
     startListener(client.getInputStream(),proc.getOutputStream()); //获得客户端指令并执行
     startListener(proc.getInputStream(), client.getOutputStream());  //输出cmd运行结果
     startListener(proc.getErrorStream(), client.getOutputStream());  //输出cmd运行错误        
   }
      
}
void startListener(InputStream is, OutputStream os){
  new Listener(is,os).start();
  
}

public static void main(String[] args){
  try {
   new SocketServerTest();
  } catch (IOException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
}
}
TelnetClient  客户端的程序
import java.net.*;
import java.io.*;
public class TelnetClient {
String host="192.168.1.99";  //Telnet服务器地址
int port=2345;  //端口号
public TelnetClient() {
  System.out.println("Host " + host + "; port " + port);
  try {
   Socket socket = new Socket(host, port); //实例化套接字
   new Listener(socket.getInputStream(), System.out).start(); //输出服务器信息到控制台
   new Listener(System.in, socket.getOutputStream()).start();  //输出控制台信息到服务器
  } catch(IOException ex) {
   ex.printStackTrace(); //输出错误信息
   return;
  }
  System.out.println("Connected Success");
}


public static void main(String[] argv) {
  new TelnetClient();
}
}
Listener 互换的线程
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
class Listener extends Thread {
  BufferedReader reader;  //输入流
  PrintStream ps;  //输出流
  Listener(InputStream is, OutputStream os) {
   reader = new BufferedReader(new InputStreamReader(is)); //实例化输入流
   ps = new PrintStream(os); //实例化输出流
  }
  public void run() {
   String line;
   try {
    while ((line = reader.readLine()) != null) {  //读取数据
     ps.print(line); //输出数据
     ps.print("\r\n");
     ps.flush();
    }
   } catch(IOException ex) {
    ex.printStackTrace();
   }
  }
}
简单调用cmd进程的远程命令访问的东西

热点排行